首页 文章

从Entity Framwork中的POCO类中删除导航属性

提问于
浏览
5

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

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

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

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

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

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

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

1 回答

  • 1

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

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

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

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

相关问题