从Entity Framework中的POJO类中删除导航属性

时间:2012-05-04 13:54:14

标签: c# sql entity-framework ado.net foreign-keys

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

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

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

  

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

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

  

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

有没有办法在不删除相应的FK的情况下从POCO类中删除导航属性?

1 个答案:

答案 0 :(得分:1)

我知道这已经过时了,但是,由于仍然没有答案,我想我会尝试一下:

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

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

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