0

我有一个名为deliveries 的表,其中包含id、shiftid、occurrence、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
4

2 回答 2

0

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

请参阅: 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

或重新设计您的数据库并按类型策略应用表。

于 2013-04-17T01:03:41.763 回答
0

尝试这样的事情:

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
                };

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

于 2013-04-17T01:15:07.497 回答