簡體   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