[英]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.