如何使用flag字段在linq中连接多个表

时间:2014-01-16 06:44:43

标签: c# asp.net-mvc linq join linq-to-entities

这是连接查询代码,其中包含3个表tblinvoice,tblClient,TblCustomer。在Tblinvoice包含一个标志字段,其中包含“客户”,然后我需要加入发票和客户表或它包含客户端然后我需要加入发票和客户表我怎么能这样做请一些人帮助我的朋友。 。 。

public class InvoiceJoin
{
    private TblInvoice invoice;
    private TblClient client;
    private TblCustomer Customer;
    public InvoiceJoin(TblInvoice invoice, TblClient client)
    {
        this.invoice = invoice;
        this.client = client;
        //this.Customer = Customer;
        //...
    }
    public string RakeNumber { get { return invoice.RakeNumber; } set { invoice.RakeNumber = value; } }
    public string partyCode { get { return invoice.ReceiverCode; } set { invoice.ReceiverCode = value; } }
    public string invoiceNum { get { return invoice.InvoiceNumber; } set { invoice.InvoiceNumber = value; } }
    //... ather invoice properties you want to see in grid

    public string ClientCode { get { return client.ClientCode; } set { client.ClientCode = value; } }
    public string ClientName { get { return client.ClientAddress1; } set { client.ClientAddress1 = value; } }        
    // ...ather clientproperties you want to see in grid
}

和我的数据加载方法

 List<InvoiceJoin> datalist = (from invoice in _godownEntity.TblInvoices
                                   join client in _godownEntity.TblClients
                                   on invoice.ReceiverCode equals client.ClientCode
                                   select new { Invoice = invoice, Client = client }).ToList() // until this road will be done on SQL servrer
                      .Select(n => new InvoiceJoin(n.Invoice, n.Client)).ToList();

1 个答案:

答案 0 :(得分:2)

如果您正在询问如何在Linq中连接这些表,这是语法(如果是,请在注释中说明): 将主键和外键放在X&amp; ÿ

var Query = (from invoice in _godownEntity.TblInvoices
             join client in _godownEntity.TblClients on invoice.ReceiverCode equals client.ClientCode
             join customer in _godownEntity.TblCustomers on invoice.**X** equals customer.**Y**
             select *WHAT U WANT*