Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq到实体可以';t handle string.split()函数_C#_Linq To Entities - Fatal编程技术网

C# Linq到实体可以';t handle string.split()函数

C# Linq到实体可以';t handle string.split()函数,c#,linq-to-entities,C#,Linq To Entities,检查以下代码: public IEnumerable<Query> GetAllQueries_FilteredOnCurrentUsersInvolvement(User user) { var queries = _genericUnitOfWork.GenericRepository<Query>().Get(q => q.AuthorUserID == user.ID || q.ConsultantUserID ==

检查以下代码:

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;
}
public IEnumerable GetAllQueries\u FilteredOnCurrentUsersVolvement(用户)
{
var querys=\u genericUnitOfWork.GenericRepository().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.othersInVolvedUserId)和&q.othersInVolvedUserId.Split(',')。Contains(user.ID.ToString()),
includeProperty:“查询的性质”);
返回查询;
}
它编译得很好。但当您运行代码时:

{“LINQ to实体无法识别方法”System.String[] Split(Char[])方法,此方法无法转换为 存储表达式。“}

我可以自己编写T-SQL代码。如何使LINQ to实体了解如何处理此问题

p.S>能够解决这个问题吗


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

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

我现在也在阅读:@wkl相同的错误,但是解决方案无法在此处应用。我认为您必须使用
q.othersinVolvedUserId.Contains(user.ID.ToString())
在表达式中作为粗略预选,然后通过检查拆分的用户ID来优化内存中的结果。这不是解决眼前问题的方法,但在CSV列中存储外键有点可疑。为什么不将表设计为正确地实现n到多?@rob:我没有创建数据库。但我在这里咨询了管理层。我得到了更改数据库的权限。我将更改数据库。因为将FK存储为CSV列是荒谬的。