检查以下代码:
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可以解决这个问题吗?
建议的重复链接,不提供如何解决此问题的任何答案。所以没有回答这个问题。
答案 0 :(得分:0)
Split操作与查询一起发送,因此需要转换为SQL函数。这没有实现,因此不起作用。您需要检索数据并在内存中执行拆分。