我在Server中创建了一个内联表值函数(ITVF),它返回一个值表(为讨论目的简化的查询):
CREATE FUNCTION dbo.VehicleRepairStatus()
RETURNS TABLE
AS
RETURN
SELECT VehicleID, CurrentStatus
FROM VehicleRepairHistory
...
我可以在查询中引用:
SELECT
v.ID, v.Name,
r.CurrentStatus
FROM
Vehicle v
LEFT OUTER JOIN
我有一个模型,你可以在这里看到:
public class car
{
public int Id { set; get; }
public string Name { set; get; }
public CarBody CarBody { get; set; }
public car( string name, CarBody carBody)
{
Name = name;
CarBody = new CarBody(carBody.VIN);
对于单个表,原始SQL使用关联子查询,有可能用单个LINQ查询来转换吗?
SELECT * From dbo.Products AS P1
WHERE SalePrice > (SELECT AVG(SalePrice)
FROM dbo.Products AS P2
WHERE P1.Type = P2.Type GROUP BY Type)
它按类型对产品进行分组,并选择SalePrice大于类型组平均值的产品。LINQ数据源是一个EFCore DbSet。
在从EFCore2.2升级到EFCore3.1之后,我遇到了"LINQ查询不再对客户端进行评估“的问题。
我在2.2中有以下查询,它们工作得很好:
var entQry = await
(from up in _dbContext.Profiles
join pa in _dbContext.Access
on up.ProfileId equals pa.ProfileId
where (up.IdentityUserId == identityUser.Id)
select new
{
pa.LibraryId
在看了几个关于如何创建一个有groupby和在哪里的linq查询的问题之后,我自己尝试了一下,但是没有成功。
我希望将此SQL查询转换为相应的linq查询。
select distinct city from zipcodedata
group by city
having city like 'zw%'
这个查询在我的开发机器上准备了大约0,03秒,表中有800万条记录。但是,当我尝试创建这样的linq查询时:
res = _context.Zipcodes
.GroupBy(z => z.City)
.Where(z
关于C#中的Linq,我有一个问题。
假设我有三个表“公司”、“雇员”和“工作”。
Company
--------
Id - int (PK)
Name - string
Employee
--------
Id - int (PK)
CompanyId - int (FK on Company.Id)
Name - string
Job
--------
Id - int (PK)
CompanyId - int (FK on Company.Id)
EmployeeId - int (FK on Employee.Id)
Name - string
就像这样:
重要的是,每个work都必
我试图通过实体框架核心3.1.1运行这个LINQ表达式。
using (Text3Context text3Context = new Text3Context(_constringText3))
{
var aus = text3Context.Ausschreibungen.Where(a => a.InhaltKurzText.Contains(value)).Select(c => c.InhaltKurzText).ToList();
}
不幸的是,当我在LINQPad 6中运行相同的表达式
我有以下LINQ语句(stationId是int,版本是字节数组):
var foundStation = (from wd in _Context.AssignmentWizardDatas
from station in wd.AssignmentWizardStationDatas
where station.Id == stationId
where station.Version.SequenceEqual(version)
sele
我有以下Customer表:
Id First Last LocationId
0 John Doe 2
1 Mary Smith 4
我的用例需要列级权限(基于实体表中的值)。
如何通过EFCore进行类似于以下的查询?
SELECT Id, First, IIF(LocationId in(2), Last, '') FROM Customer;
这样,Last仅在LocationId == 2时才返回。
这能作为动态类型在Linq到实体中实现吗?
如果没有,我可以使用FromSql()和吗?
我发现这个是为了。但我不
我刚刚从DAL使用LINQ执行了一个查询,并获得了一个带有嵌入的ILIST对象的记录集合,如下所示
string name
date startDate
date endDate
ILIST<MyType> ImbeddedList (this contains more columns like recordID, sentDate, dueDate)
我需要将一个LIST<T>返回到网格以进行绑定。
我在编写过滤IQueryable集合对象的LINQ语句时遇到了一些问题。
在我下面的声明中:
IQueryable<All_DATA> cases =
我正在升级一个应用程序,以使用EF核心3.1。
我得到了错误The LINQ expression could not be translated. Either rewrite the query in a form that can be translated, or switch to client evaluation。
我的代码中有大约80个查询。
我了解到,对于每一个查询,我都可以:
翻译查询使用.AsEnumerable / .ToList /等使查询运行客户端。
我想翻译尽可能多的查询。
是否有关于什么可以/不能翻译的规则列表?(我在想象MSDN的参考指南)
目前,我的方法是以
我有以下包含LINQ语句的代码:
public async Task<HashSet<long>> GetMembersRecursive(IEnumerable<long> groupIds)
{
var containsGroupId = InExpression<Group>("Id", groupIds);
var containsParentId = InExpression<RecursiveGroupModel>("ParentId", groupIds);
va
我最近一直在将一个旧的解决方案从EF6升级到EFCore,将Net48升级到Net5.0。 因此,在迁移到EFCore之后,我注意到一些在EF6中执行得很好的查询现在在EFCore中是SQL。 我将旧的EF6和EFCore DbContext连接都导入到了LINQPad中,并研究了生成的SQL。 以下是我的实体: [Table("Asset")]
public class Asset
{
public Asset()
{
MonitoringLogs = new HashSet<MonitoringLog>();
}
因此,EFCore2.1评估server上的GroupBy LINQ表达式(当使用server时)。
但是,当查询变得更加复杂时,这是一个很棒的问题。
用于这些查询的模型是:
public class Invoice
{
public string Status {get; set;}
public string InvoiceType {get; set;}
public decimal InvoicePayments {get; set;}
public decimal EligibleValue {get; set;}
}
此LINQ语句在Server:中
我正在尝试使用record 3检索每个组的最新记录,但我想出的每一个可能的LINQ查询最终都会得到InvalidOperationException异常Processing of the LINQ expression '...' by 'NavigationExpandingExpressionVisitor' failed. This may indicate either a bug or a limitation in EF Core。
根据EFCore2.2中的一些有效答案,这个查询应该成功了,但它没有做到
from lfv in dbo.Listin
我在使用EFCore3.1查询PostgreSQL数据库时遇到问题。
查询非常简单
var gamesQuery = this.dbContext.Games.Where(game => game.StartTime > DateTime.Now).AsQueryable();
// 'request.TimeFrom' is of type System.TimeSpan and the value is populated
gamesQuery = gamesQuery.Where(game => game.StartTime.TimeOfDay >
我在我的方法中使用了一个linq查询。当我跨过我的linq代码时,我的isValid变量集设置为false。当它需要真实的时候。为什么isValid被设置为假,我如何才能解决这个问题?
C#代码
public void Method()
{
bool isValid = false;
using(Database db = new Database())
{
isValid = (from x in db.TableName
where x.Column_A =
我想要一个代码样本。目前,我在c#和asp.net 4 ef4中使用linq
var querySlotOrder = from slot in context.CmsSlots
where slot.SlotId == myCurrentSlotId
select slot;
if (querySlotOrder.SlotOrder == myNewSlotOrder)
e.Cancel = true;
此l