簡體   English   中英

實體框架映射ID列表

[英]Entity Framework mapping list of ids

我現在處於一種奇怪的情況,我有兩個實體:

public class Proyect
{
    int id;
    List<int> stages;
}

public class Stage
{
    //PK, not FK to proyect
    int id;
}

我知道這不是對這種關系進行建模的最佳方法(n-> 1),但是這種方式已經完成,我們無法更改。

有人知道嗎,我如何關聯這個實體(符號或覆蓋onModelCreation )?

我們正在使用c#,ET4,VS2012,WS8。

我喜歡將數據注釋用於簡單的關系。 您必須在Proyect表上指定鍵字段,並在Stage表上指定外鍵。 在Proyect表中,應該有一個Stage列表,而不是ints列表,因為您與Stage對象有關。 您可以使用virtual關鍵字在相關實體上使用lazyloading

如果確實需要包含舞台ID的int類型列表,則只需使用未映射的屬性即可。

public class Proyect{
    [Key]
    public int id { get; set;}
    public virtual List<Stage> stages { get; set;}
    [NotMapped]
    public virtual List<int> stageIds {
        get {
            return stages == null ? null : stages.Select(t => t.id).ToList();
        }
    }
}

public class Stage{
    public int id { get; set;}
    [ForeignKey("id")]
    public virtual Proyect Proyect { get; set;}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM