Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.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# 如何使用flag字段连接linq中的多个表_C#_Asp.net Mvc_Linq_Join_Linq To Entities - Fatal编程技术网

C# 如何使用flag字段连接linq中的多个表

C# 如何使用flag字段连接linq中的多个表,c#,asp.net-mvc,linq,join,linq-to-entities,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 C

这是连接查询代码,其中包含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();
List datalist=(来自_godownEntity.TblInvoices中的发票)
在_godownEntity.TblClients中加入客户端
在发票上.ReceiverCode等于client.ClientCode
选择new{Invoice=Invoice,Client=Client}).ToList()//直到这条路在SQL Server上完成
.Select(n=>newinvoicejoin(n.Invoice,n.Client)).ToList();

如果您询问如何在Linq中联接这些表,以下是语法(如果是其他语法,请在注释中说明): 将主键和外键改为放在X&Y上

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*

没有朋友我有三张桌子一张是发票,然后是客户,最后一张是仓库。在发票表中有一个字段名为InvoiceType,该字段值为1,我需要加入发票和客户表,否则我需要加入发票和仓库表,你能理解吗