实体框架在匹配实体名称时将属性名称附加“1”

时间:2015-10-26 14:17:57

标签: .net entity-framework entity-framework-4

我正在使用Entity Framework 4.0版使用数据库第一种方法创建模型。在数据库中,有许多表包含与其父表相同的列。

所以我们有例如

  • 表状态,状态为State和StateName
  • 表状态和列状态和描述

问题在于,当其中一个表被导入EF模型时,这些列被映射的属性名称会在其末尾附加一个“1”。

所以我最终得到了

  • 具有属性State1和StateName
  • 的实体状态
  • 包含属性Status1和Description
  • 的实体状态

当我尝试删除末尾的“1”时,我收到一条消息“在这种情况下,名称状态不能重复。请选择其他名称。”

我有没有办法让我的财产保留其名称,或者这是框架中记录的限制?

2 个答案:

答案 0 :(得分:4)

您的班级中没有一名成员,其名称与您的班级相同。

示例:

class Test
{
    // Invalid
    int Test;

    // Invalid
    public int Test {get; set; }

    // OK
    int Test1; 
}

答案 1 :(得分:0)

供将来参考......我的问题已通过删除解决。我错过了主键被映射到基类中的“int id”字段的事实。当我看到模式时

-c

我错误地认为我需要将“int MyEntityKey”属性添加到MyEntity。它与基本id映射冲突,并增加了我添加的属性。