[英]Asp.net list property of model gets lost
在asp.net Web API中,我得到了一個具有列表作為屬性的模型。
public class MyModel {
[Key, Required]
public string Title { get; set; }
public List<string> MyList { get; set; }
}
成功運行種子方法之后,當我在服務器資源管理器中檢查表的數據時,只有此屬性Title
,但不會顯示MyList
。
當我輸入/api/MyModel/potato
在地址欄中,並看看在我的控制器調試窗口,Visual Studio中告訴用戶MyList
馬鈴薯對象的屬性將是空的,但它實際上不是。
如何訪問我的清單?
更新 :這是種子方法
protected override void Seed(MyProject.Models.MyProjectContext context)
{
context.MyModels.AddOrUpdate(
m => m.Title,
new MyModel {
Title = "potato",
MyList = new List<string>() {
"Foo",
"Bar"
}
}
);
}
您應該創建2個模型來創建SQL Server可以實際創建的關系。 並且主鍵不應是可編輯的。 如果更改標題,則更改PK,這絕不是一個好的設計。
public class MyModel
{
[Key]
public int Id {get; set; }
[Required]
public string Title { get; set; }
//set the relationship to MyList-class
public virtual ICollection<MyList> MyList {get; set;}
}
public class MyList
{
[Key]
public int Id {get; set; }
[Required]
public string Name {get; set; }
}
有了這個,你保證,每一個MyClass
對象0,1..n MyList
對象。
使用此模型,您可以通過以下方式在“操作”中調用它:
var result = context.MyClass.Include(o => o.Mylist);
//alternative
var result = context.MyClass.Include("MyList");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.