2011-05-26 111 views
0

我有一个与另一个实体有关系的实体。我能够搜索主实体中的列,并包含关系实体中的列。但是我需要能够过滤不在关系实体中的列的列表(搜索)。JQgrid /实体框架问题与有关系的实体

例如

发票实体包含了CustomerID属性,关系到包含客户名称属性

我需要能够通过客户名称搜索/过滤电网的客户实体。

我是新来的实体框架,请大家帮忙。

感谢

卡尔

回答

0

你的关系是1> 1。在这些情况下,我通常会返回一个自定义类到网格,该网格包含我需要的所有列,包括与其他表的连接。

所以基本上你需要的是用你的结果集创建一个自定义的linq查询。

的MAIS查询应该遵循这个例子:

var q = from i in ctx.Invoices 
     join c in ctx.Customers on i.CustomerID equals c.CustomerID 
     select new{InvoiceID=i.InvoiceID, InvoiceDate=i.Date, CustomerName=c.Name}; 

现在,假设我们收到客户名称变量与字符串由c.Name过滤,我们可以这样做:

if(!string.IsNullOrEmpty(CustomerName)) 
{ 
    q = q.where(c => c.Name.ToLower().Contains(CustomerName.ToLower())); 
} 

请注意,我在执行ToLower()操作和Contains时,这将具有LIKE ingnoring大小写敏感性,并在Customer Name中的任何位置搜索字符串。

最后,您将返回序列化为jqGrid的q.ToList()...