5

我正在使用生成的 POCO 类和实体框架。

为了使代码不那么复杂,我试图从代码中删除所有导航属性,同时仍将外键约束保留在数据库中(导航属性对我们弊大于利)。

如果我从 POCO 类中手动删除它们,我会收到以下错误

实体类型 UserEntity 不是当前上下文模型的一部分

如果我尝试从 .edmx 文件中删除它们,我会收到以下错误:

错误 3 错误 3015:从第 479、562 行开始映射片段时出现问题:从表 StorageContract (OwnerUserID) 到表 User (ID) 的外键约束“fk_StorageContracts_User1”:: 映射不足:外键必须映射到某些 AssociationSet 或 EntitySets 参与在概念方面的外键关联中。

有什么方法可以在不删除相应 FK 的情况下从 POCO 类中删除导航属性?

4

1 回答 1

1

我知道这是旧的,但是,由于仍然没有答案,我想我会试一试:

我仍在使用 EF 4.0,但是,按照您提到的示例,您有一个 xxxModel.tt。如果您愿意调整它,您可以找到它生成导航属性的位置并将它们更改为简单的自动属性。我有一个类似的项目,我像这样生成它们:

public List<NavDataX> NavDataXs
{
    get; set;
}

现在,它们仍然存在,但在您明确设置它们之前它们是空的。这样做,我没有弄乱EDMX,也没有遇到你提到的两个错误。

于 2012-07-24T15:46:15.470 回答