2012-09-19 46 views
1

嗨,我有一个数据库首先定义的EF5模型。 我的用户表有一个主键guid UserGUID 和另一个关键字段UserID带有自动递增整数。 我创建了一个名为UserCustomField的表,它具有 UserID,并且我已在用户表中为用户ID创建了一个外键约束。EF5如何添加缺少的关系

当我从数据库更新模型时,所有到主键的外键关系都会生成,但没有键关键字。忽略关于通过我所有的表使用GUID的潜在问题..... A /不应该EF添加这种关系? B /我如何手动添加它?

干杯 添

回答

2

答:不可以。 B:你不能。

EF能够当它们指向主键,只使用关系,使要么改变User表使用UserID作为主键和删除UserGuid或更改UserCustomField表中User表指向UserIDUserGuid

它不工作的原因是您的数据库要求UserIDUser表中被标记为唯一(这意味着唯一约束)并且EF不支持唯一性约束。

+0

是不是我可以添加我自己的属性至少用户对象,所以我可以做foreach的等价物(UserCustomField项myUser.UserCustomerFields()) – Tim

+0

如果您不修改您的模型来创建在EDMX中你必须隐藏你自己的Linq查询,手动连接后面的新属性。这将使您的用户实体依赖于EF的上下文实例。 –

+0

对不起拉迪斯拉夫,我不能锻炼你在评论中表达的内容。你是说这是不可取的?我看不到在我的用户对象中添加方法或属性的明显位置,因为EF似乎填充了不了解上下文的类。 – Tim