Linq to实体无法处理string.split()函数

时间:2017-02-24 10:06:57

标签: c# linq-to-entities

检查以下代码:

public IEnumerable<Query> GetAllQueries_FilteredOnCurrentUsersInvolvement(User user)
{
    var queries = _genericUnitOfWork.GenericRepository<Query>().Get(q =>
        q.AuthorUserID == user.ID ||
        q.ConsultantUserID == user.ID ||
        q.CreatorUserID == user.ID ||
        q.EngagementPartnerUserID == user.ID ||
        q.EQCRPUserID == user.ID ||
        q.LeadPartnerUserID == user.ID ||
        q.RMPUserID == user.ID ||
        (!string.IsNullOrEmpty(q.OthersInvolvedUserIDs) && q.OthersInvolvedUserIDs.Split(',').Contains(user.ID.ToString())),
        includeProperties: "NatureOfQuery");
    return queries;
}

它编译得很好。但是当你运行代码时:

  

{“LINQ to Entities无法识别方法'System.String []   拆分(Char [])'方法,这个方法无法翻译成一个   商店表达。“}

我自己可以编写T-SQL代码。如何让LINQ to Entities了解如何处理这个?

P.S&GT; this nuget package可以解决这个问题吗?

建议的重复链接,不提供如何解决此问题的任何答案。所以没有回答这个问题。

1 个答案:

答案 0 :(得分:0)

Split操作与查询一起发送,因此需要转换为SQL函数。这没有实现,因此不起作用。您需要检索数据并在内存中执行拆分。

相关问题