.net 实体框架如何判断“的多重性”;“一”;或;零或一“;应该用在关系上吗?

.net 实体框架如何判断“的多重性”;“一”;或;零或一“;应该用在关系上吗?,.net,entity-framework,entity-relationship,ssdl,multiplicity,.net,Entity Framework,Entity Relationship,Ssdl,Multiplicity,作为代码生成过程的一部分,我正在以编程方式创建一个edmx文件,我想知道当您“从数据库更新模型”时,设计器如何决定使用“1”或“0..1”作为关系。对此有什么见解吗?谢谢 编辑: 好的,我认为当“多”端是一个可空外键时,它使用“0..1”,如果它不可空,则使用“1”。有人能确认吗?是的,父关系角色的设置“0..1”或“1”取决于列是否可为空 不要忘记,如果关系是在两个表(1到1关联)的主键列的部分上构建的,则基数将是1(父)到0..1(子)。 如果您正在开发新的edmx生成工具,我们建议您尽可

作为代码生成过程的一部分,我正在以编程方式创建一个edmx文件,我想知道当您“从数据库更新模型”时,设计器如何决定使用“1”或“0..1”作为关系。对此有什么见解吗?谢谢

编辑:

好的,我认为当“多”端是一个可空外键时,它使用“0..1”,如果它不可空,则使用“1”。有人能确认吗?

是的,父关系角色的设置“0..1”或“1”取决于列是否可为空
不要忘记,如果关系是在两个表(1到1关联)的主键列的部分上构建的,则基数将是1(父)到0..1(子)。

如果您正在开发新的edmx生成工具,我们建议您尽可能多地进行实验和分析。我们开发了一个设计时工具,用于生成和编辑实体框架和LINQ to SQL模型,并为我们的客户进一步生成Oracle、MySQL、PostgreSQL、SQL Server和SQLite的代码。SQL Server没有问题,因为实体框架最初是在它上面开发的,但其他数据库显示出一些困难。甚至有一种印象是,例如,Oracle数据库的某些特性根本没有被考虑进去。

您的编辑非常准确。EF根据字段是否可为空来检测它