C# linq select中以逗号分隔的列表
我有表HR_Travel(TravelID,TravelCode…)和HR_TravelDocuments(TravelDocID,TravelID,DocUrl) Join()方法不能在LINQ表达式中使用,因为它不能从CLR转换为t-SQL。另一个例子是,您不能使用:C# linq select中以逗号分隔的列表,c#,linq,C#,Linq,我有表HR_Travel(TravelID,TravelCode…)和HR_TravelDocuments(TravelDocID,TravelID,DocUrl) Join()方法不能在LINQ表达式中使用,因为它不能从CLR转换为t-SQL。另一个例子是,您不能使用: var itemCount = db.Table.Count(p => p.Something == SomeFunction(someVariable)); 您应该将方法调用移到LINQ语句之外: var anoth
var itemCount = db.Table.Count(p => p.Something == SomeFunction(someVariable));
您应该将方法调用移到LINQ语句之外:
var anotherVariable = SomeFunction(someVariable);
var itemCount = db.Table.Count(p => p.Something == anotherVariable);
我希望我解释得很好
编辑:如前面的注释所示,您还可以使用ToArray(),当数据在本地加载时,您可以自由使用语句中的函数。如果Linq To WHERTH不支持它,您可以将其具体化为Linq To Objects查询,然后您可以使用任何您喜欢的方法。您只需在
Where
之后添加AsEnumerable
。然后它加载到内存中。他确实使用了string.Join(对于DocUrl,我想在您实际将数据作为tolist()之前,您无法在匿名列定义中执行联接。我尝试在where之后使用一个numerable,但当我只写string DocUrl=string.Join(“,”,(db.HR\u TravelDocuments.where)时,仍然使用相同的eoor(i=>i.TravelID==1&&i.TravelSubID==0)。选择(i=>i.DocUrl.ToList());工作正常
var itemCount = db.Table.Count(p => p.Something == SomeFunction(someVariable));
var anotherVariable = SomeFunction(someVariable);
var itemCount = db.Table.Count(p => p.Something == anotherVariable);