可在 LINQ to Entities 中使用的 string.Join 的 LINQ 等价物
LINQ equivalent of string.Join that is usable in LINQ to Entities
我有一个元数据 class,其中包含一些自定义属性以便更轻松地访问数据。我遇到的一个 运行 问题是,当我尝试在 LINQ 语句中使用此 属性 时,出现此错误。
The specified type member 'CrewCodesStr' is not supported in LINQ to Entities.
我知道我为什么会这样,我想知道是否有另一种方法可以让 属性 在 LINQ 语句中使用。
这里是 属性:
public string CrewCodesStr
{
get { return string.Join(", ", CrewCodesList); }
}
这是一个失败的示例查询。
query = query.Where(wo => searchCriteria.crewCode.Contains(wo.CrewCodesStr));
您可以在 string.Join
从您的数据库中选择您需要的信息后执行此操作。如果您执行 ToList()
,这将从数据库中枚举您需要的数据。然后你可以做任何你想做的C#,因为它会在 ToList()
之后在内存中 运行
var result = MyObjects.Select(x => new
{
ID = x.ID,
CrewCodes = x.CrewCodes
})
.AsEnumerable()//enumerate the queryable
.Select(x => new
{
ID = x.ID,
String = string.Join(",",x.CrewCodes)
});
我有一个元数据 class,其中包含一些自定义属性以便更轻松地访问数据。我遇到的一个 运行 问题是,当我尝试在 LINQ 语句中使用此 属性 时,出现此错误。
The specified type member 'CrewCodesStr' is not supported in LINQ to Entities.
我知道我为什么会这样,我想知道是否有另一种方法可以让 属性 在 LINQ 语句中使用。
这里是 属性:
public string CrewCodesStr
{
get { return string.Join(", ", CrewCodesList); }
}
这是一个失败的示例查询。
query = query.Where(wo => searchCriteria.crewCode.Contains(wo.CrewCodesStr));
您可以在 string.Join
从您的数据库中选择您需要的信息后执行此操作。如果您执行 ToList()
,这将从数据库中枚举您需要的数据。然后你可以做任何你想做的C#,因为它会在 ToList()
var result = MyObjects.Select(x => new
{
ID = x.ID,
CrewCodes = x.CrewCodes
})
.AsEnumerable()//enumerate the queryable
.Select(x => new
{
ID = x.ID,
String = string.Join(",",x.CrewCodes)
});