在非关键列上创建实体关联

时间:2011-04-27 18:57:15

标签: entity-framework entity-framework-4 entity-relationship

我有两个表用户和学校。每个都有主键,没有外键。我必须绑定的数据库根本没有规范化,但我仍然需要有关联。 我注意到其他一些相似的问题,但我不太明白他们在问什么,如果这是重复,那就很抱歉。

Users Table
UserId int NON NULL
School varchar NON NULL

Schools Table
SchoolId int NON NULL
SchoolName varchar NON NULL

数据如下所示:

Users Table
UserId    School
1         ABC
2         ABC

Schools Table
SchoolId  SchoolName
1         ABC
2         DEF

我想创建的关联在下面,关键是Schools表中的SchoolName和Users表中的School

User *--1 School

2 个答案:

答案 0 :(得分:1)

不幸的是,这是不可能的。如果要在数据库中执行此操作,则会将SchoolName表中的Schools标记为唯一(通过放置唯一约束/索引),因此您将能够构建一对多关系。 EF不支持任何唯一键,因为您无法在数据库中定义此类关联(它不会在您的模型中反映)或在模型中直接通过引用约束来定义。

使用EF时,良好的数据库设计仍然是关键。

答案 1 :(得分:0)

作为对有类似问题的人的一个FYI,Linq to SQL确实具有这种能力,它似乎工作正常。