繁体   English   中英

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

[英]Entity Framework appending '1' to property name when it matches entity name

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

例如,我们有

  • table State with State State和StateName
  • table列状态和描述的状态

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

所以我最终得到了

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

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

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

您不能在班级中拥有一个名为您的班级的成员。

例:

class Test
{
    // Invalid
    int Test;

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

    // OK
    int Test1; 
}

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

this.Property(t => t.id).HasColumnName("MyEntityKey");

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM