C# SQL数据库、实体数据模型和1对1实体
我是EDMs的新手,以前写过很多ADO.Net的东西。我有三张桌子:C# SQL数据库、实体数据模型和1对1实体,c#,sql-server-2005,entity-framework,cardinality,C#,Sql Server 2005,Entity Framework,Cardinality,我是EDMs的新手,以前写过很多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_MaxLoan和Product_MinLoan中都会有一行ID为1 在VisualStudio2010中
**Product:**
Prod_ID - PK
**Product_MaxLoan**
Prod_ID - PK
**Product_MinLoan**
Prod_ID - PK
这些表托管在MS SQL 2005中,尚未配置FK或约束,它们将具有名义上的1对1关系。例如,ID为1的产品的每一行,在Product_MaxLoan和Product_MinLoan中都会有一行ID为1
在VisualStudio2010中,我希望正确设置EDM,以便将基数设置为1:1。我以前对表和下面的设置有FK约束,但是,我认为这只允许0..1基数,因为一个产品可能没有Product\u MaxLoan或Product\u MinLoan
**Product:**
Prod_ID - PK
**Product_MaxLoan**
ID - PK
Prod_ID - FK
**Product_MinLoan**
ID - PK
Prod_ID - FK
问题:
对于在SQL2005中设置这些表,您有什么建议?对于EDM中的1对1关系,您会设置FKs吗?
您能否在SQL 2005中设置EDM从数据库导入时将读取的PK关系?
一个产品包含大约300个属性,因此包含所有这些属性
因此,单个表中的数据的数据库规范性较差
许多1-1表。最好的做法是把所有这些
属性合并到单个EDM类中?我的本能反应是打破它
这是我的ADO传统
走到前面,为每个逻辑部分都有一个类
产品
如蒙指教,不胜感激
致以最良好的祝愿
在数据库中标记使用此配置:
**Product:**
Prod_ID - PK
**Product_MaxLoan**
Prod_ID - PK, FK (to Product)
**Product_MinLoan**
Prod_ID - PK, FK (to Product)
这将在数据库级别以及EF中强制执行一对一关系。关系本身将是1-0..1产品可以在没有MaxLoan和MinLoan的情况下存在,因为数据库中不能存在真正的1:1。Real 1:1要求两个实体始终存在=如果第二个实体不存在,则无法插入第一个实体;如果第一个实体不存在,则无法插入第二个实体。如何在不关闭引用完整性的情况下插入它们?你好,Ladislav,谢谢你的建议,这非常有意义。从EDM的角度来看,您是否建议我在一个类中拥有所有300个属性?或者把它分成更小的类?再次感谢。做记号