访问相关表中数据的最佳方式

时间:2013-02-11 22:54:32

标签: c# linq entity-framework join linq-to-entities

我有两个概念相关的表但原始编码器没有在表之间创建任何FK关系。

表1:

TABLE [Name](
ID [varchar](10) NOT NULL (this is the PK),
MAIL_ADDRESS_NUM [int] NOT NULL,
BILL_ADDRESS_NUM [int] NOT NULL,
Shipping_Address_Num [int] Not Null
)

表2:

TABLE [Address](
ID [varchar](10) NOT NULL,
ADDRESS_NUM [int] NOT NULL (this is the PK),
PURPOSE [varchar](20) NOT NULL
)

如果我有选项,我会将FKs放在MailingAddress到AddressNumber,BillingAddress放到AddressNumber,将ShippingAddress放到AddressNum。但这不是一种选择。

目前在我的LINQ中我做了类似的事情:

from n in Names.Where(predicate)
join ba in db.Addresses on n.BillingAddressNumber equals ba.AddressNumber
join sa in db.Addresses on n.ShippingAddressNumber equals sa.AddressNumber
join ma in db.Addresses on n.MailingAddressNumber equals ma.AddressNumber

如果我正确理解EF和linq,我应该能够在Edmx设计界面上/中创建该关联并简化我的查询。正确的吗?

如果是这样,需要采取哪些步骤来为Edmx文件添加正确的关联?我找到了一些引用,但它们似乎涉及相当多的操作底层XML文件。这有必要吗?这些表也是严格只读的。使用VS2012和EF5。

0 个答案:

没有答案