C# linq to sql中包含的问题

C# linq to sql中包含的问题,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,我正在从事MVC4项目。我在.contain()方面遇到了非常奇怪的问题。 我在其他项目中使用相同的代码,并且工作良好 这是我的密码: string[] split = new string[] { }; if (Helper.DepartmentFilter != null) { split = Helper.DepartmentFilter.Split(','); } using (dbEntities Context = new dbEntities()) { var result

我正在从事MVC4项目。我在.contain()方面遇到了非常奇怪的问题。 我在其他项目中使用相同的代码,并且工作良好

这是我的密码:

string[] split = new string[] { };
if (Helper.DepartmentFilter != null)
{
  split = Helper.DepartmentFilter.Split(',');
}
using (dbEntities Context = new dbEntities())
{
 var result = (from me in Context.master_employee
               join ud in Context.user_detail on me.employeeid equals ud.employeeid
               where me.status.Equals("A")
               && (split.Length == 0 || split.Contains(me.department))
               select new
               {
                  ud.email,
                  me.employeeid,
                  me.name
               }).ToList();

                return result;
}
我得到了一个错误

The LINQ expression node type 'ArrayLength' is not supported in LINQ to Entities.
有人能帮我吗?

移出“split.Length”

移出“拆分长度”

移出“拆分长度”

移出“拆分长度”

并非LINQ的每个“味道”都支持其可用表达式。例如,“Linq到实体”无法对与查询无关的对象执行操作。换句话说,Linq到实体查询应该只包含实体基本类型(整数、字符串等)。Linq to Entities不支持所有可用的Linq操作,这也可能取决于您的Linq to Entities驱动程序

如果您想使用所有LINQ操作,我建议您进入“LINQ到对象”空间。在这里,您拥有所有可用的LINQ功能,但必须首先支付数据检索计算成本功能。因此,如果您的查询具有显著的性能代价,那么您可能必须对其进行改革

希望我能帮忙

并非LINQ的每个“味道”都支持其每个可用表达式。例如,“Linq到实体”无法对与查询无关的对象执行操作。换句话说,Linq到实体查询应该只包含实体基本类型(整数、字符串等)。Linq to Entities不支持所有可用的Linq操作,这也可能取决于您的Linq to Entities驱动程序

如果您想使用所有LINQ操作,我建议您进入“LINQ到对象”空间。在这里,您拥有所有可用的LINQ功能,但必须首先支付数据检索计算成本功能。因此,如果您的查询具有显著的性能代价,那么您可能必须对其进行改革

希望我能帮忙

并非LINQ的每个“味道”都支持其每个可用表达式。例如,“Linq到实体”无法对与查询无关的对象执行操作。换句话说,Linq到实体查询应该只包含实体基本类型(整数、字符串等)。Linq to Entities不支持所有可用的Linq操作,这也可能取决于您的Linq to Entities驱动程序

如果您想使用所有LINQ操作,我建议您进入“LINQ到对象”空间。在这里,您拥有所有可用的LINQ功能,但必须首先支付数据检索计算成本功能。因此,如果您的查询具有显著的性能代价,那么您可能必须对其进行改革

希望我能帮忙

并非LINQ的每个“味道”都支持其每个可用表达式。例如,“Linq到实体”无法对与查询无关的对象执行操作。换句话说,Linq到实体查询应该只包含实体基本类型(整数、字符串等)。Linq to Entities不支持所有可用的Linq操作,这也可能取决于您的Linq to Entities驱动程序

如果您想使用所有LINQ操作,我建议您进入“LINQ到对象”空间。在这里,您拥有所有可用的LINQ功能,但必须首先支付数据检索计算成本功能。因此,如果您的查询具有显著的性能代价,那么您可能必须对其进行改革


希望我能帮忙

我善意地建议,你应该改变问题的标题。您使用“Linq到实体”而不是“Linq到SQL”。这不是同一件事…我善意地建议,你应该改变问题的标题。您使用“Linq到实体”而不是“Linq到SQL”。这不是同一件事…我善意地建议,你应该改变问题的标题。您使用“Linq到实体”而不是“Linq到SQL”。这不是同一件事…我善意地建议,你应该改变问题的标题。您使用“Linq到实体”而不是“Linq到SQL”。这不是一回事…非常感谢您的快速响应和解决问题非常感谢您的快速响应和解决问题非常感谢您的快速响应和解决问题非常感谢您的快速响应和解决问题非常感谢您的快速响应和解决问题
string[] split = new string[] { };
                if (Helper.DepartmentFilter != null)
                {
                    split = Helper.DepartmentFilter.Split(',');
                }
                var splitLength = split.Length;
                using (dbEntities Context = new dbEntities())
                {
                    var result = (from me in Context.master_employee
                                  join ud in Context.user_detail on me.employeeid equals ud.employeeid
                                  where me.status.Equals("A")
                                  && (splitLength  == 0 || split.Contains(me.department))
                                  select new
                                  {
                                      ud.email,
                                      me.employeeid,
                                      me.name
                                  }).ToList();

                    return result;
                }