asp.net mvc 3-JQgrid/实体框架与有关系的实体的问题



我有一个与另一个实体有关系的实体。我能够搜索主实体中的列,并包括关系实体中的各列。但我需要能够过滤不在关系实体中的列的列表(搜索)。

例如

发票实体包含customerId属性,并且与包含customerName属性的客户实体相关

我需要能够按customerName搜索/筛选网格。

我是实体框架的新手,请帮忙。

感谢

Carl

您的关系是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};

现在,假设我们收到一个CustomerName变量,其中包含要按c过滤的字符串。我们可以执行以下操作:

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

注意,我正在执行ToLower()操作和Contains,这将作为区分大小写的LIKE,并在Customer Name中的任何位置搜索字符串。

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

最新更新