0 ... 1协会的实体框架基数问题

AJ.*_*AJ. 5 entity-framework cardinality model-associations entity-framework-4.3

我有这样的数据库表:

架构图

A Task可以映射到a Module,或者根本不映射(0 ... 1).我首先使用Entity Framework数据库,当我从数据库生成模型时,Task实体将Modules作为集合(0或更多)来实现.所以我打开了我的EDMX并将Task上的"Modules"导航属性更改为0 ... 1.

EDMX

现在,当我尝试编译时,我收到此错误:

错误3003:从第1241行开始映射片段时出现问题:给定关联结束成员任务的基数,它应该映射到表TaskModule的键列.修复映射或更改此末尾的多重性.

我不明白我需要做些什么来解决这个问题.我查看了关联细节,看不出问题.我知道我可能错过了一些愚蠢的东西,但我完全陷入困境.协会财产:

TaskModule关联

Visual Studio 2010 SP1,实体框架4.3.1.0,SQL Server 2008 R2.

Dea*_*ean 5

一种方法是重新定义TaskModule表的主键.它不是主键(TaskId,ModuleName),而是(TaskId).然后从数据库执行更新模型,并手动更改未从该更新中获取的任何关联.

  • @RaphaëlAlthaus在我看来,这是一个哲学的答案(即违反了第3个NF,但无论你是否应该是有争议的).你能指点我支持你的POV的材料吗?看看http://stackoverflow.com/questions/1723808/nullable-foreign-key-bad-practice (2认同)