LINQ等效字符串.可在LINQ to Entities中使用的联接

本文关键字:LINQ Entities 字符串 可在 to | 更新日期: 2023-09-27 18:19:44

我有一个元数据类,它具有一些自定义属性,可以更方便地访问数据。不过,我遇到的一个问题是,当我试图在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));

LINQ等效字符串.可在LINQ to Entities中使用的联接

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