繁体   English   中英

Linq查询联接4个表

[英]Linq query to join 4 tables

我有一个称为Delivery的表,其中包含ID,ShiftID,Ocence,Delfee列。 我还有另外三个表delcash,delcc,delsplit。 Del Cash具有列(id,cost,paid),delcc具有列(id,cccost,ccpaid,cashtip),delsplit具有列(id,cashcost,cashpaid,cccost,ccpaid)。 id根据付款类型将交货条目链接到其他三个表之一。 我正在尝试获取将表以某种方式连接在一起的列表,以便我可以遍历列表,并在视图中获得一个表,该视图按出现的顺序显示每个交付以及每个交付的提示和交付费用。 知道是否可以这样做? 还是应该只使用SQL?

SELECT deliveries.occurrence, deliveries.delfee,delcash.cost,delcash.paid,delcc.cost,delcc.paid,delcc.cashtip,
delsplit.cashcost,delsplit.cashpaid,delsplit.cccost,delsplit.ccpaid
FROM deliveries
LEFT JOIN delcash
ON deliveries.id = delcash.id
LEFT JOIN delcc
ON deliveries.id = delcc.id
LEFT JOIN delsplit
ON deliveries.id = delsplit.id

您可以创建一个新类,并让三个成本表从该类继承,然后可以应用“每个具体类型的表”策略来映射表。

参见: http : //weblogs.asp.net/manavi/archive/2010/12/24/inheritance-mapping-strategies-with-entity-framework-code-first-ctp5-part-1-table-per-hierarchy- tph.aspx

或重新设计数据库,然后按类型应用表。

尝试这样的事情:

var joinedDel = from delivery in tblDeliveries
                join delC in tblDelCash on delivery.id equals delC.id
                join delCC in tblDelCreditCard on delivery.id equals delCC.id
                join delSplit in tblDelSplit on delivery.id equals delSplit.id
                select new {
                      //Then create a new instance of Anonymous object where you will set all values of its properties
                      //For example, you can set ShiftID = delivery.ShiftID
                };

我还将建议首先规范化您的表(请参阅此链接以供参考)。 这将使您对如何正确连接这些表有更多的了解。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM