LINQ等效于在LINQ to Entities中可用的string.Join

时间:2015-10-28 18:51:44

标签: c# entity-framework linq

我有一个带有一些自定义属性的元数据类,可以更轻松地访问数据。我遇到的一个问题是,当我尝试在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));

1 个答案:

答案 0 :(得分:3)

之后,您可以从数据库中选择所需的信息后执行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)
});