0

我有两个概念上相关的表,但原始编码器没有在表之间创建任何 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
)

如果我可以选择,我会将 FK 放在 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。

4

0 回答 0