我对EDM很陌生,过去写了很多ADO.Net的东西。我有三张桌子:
**Product:**
Prod_ID - PK
**Product_MaxLoan**
Prod_ID - PK
**Product_MinLoan**
Prod_ID - PK
这些表在MS SQL 2005中托管,尚未配置FK或约束,它们具有名义上的1对1关系。例如,ID为1的Product的每一行,Product_MaxLoan和Product_MinLoan中都会有一行ID为1。
在Visual Studio 2010中,我想正确设置EDM,以便将基数设置为1到1.我之前对表和下面的设置有FK约束,但是,这只允许0。 .1基数(为了迎合,我想,因为产品可能没有Product_MaxLoan或Product_MinLoan)。
**Product:**
Prod_ID - PK
**Product_MaxLoan**
ID - PK
Prod_ID - FK
**Product_MinLoan**
ID - PK
Prod_ID - FK
问题:
您的建议将不胜感激。
致以最诚挚的问候,
标记
答案 0 :(得分:0)
在数据库中使用此配置:
**Product:**
Prod_ID - PK
**Product_MaxLoan**
Prod_ID - PK, FK (to Product)
**Product_MinLoan**
Prod_ID - PK, FK (to Product)
这将强制数据库级别和EF中的一对一关系。关系本身将是1 - 0..1(Product
可以不存在MaxLoan
和MinLoan
),因为数据库中不存在真正的1:1。真正的1:1要求两个实体始终存在=如果第二个不存在则不能插入第一个,如果第一个不存在则不能插入第二个实体。如何在不关闭参照完整性的情况下插入它们?