[英]ASP.NET MVC 5 / EF6 Many-to-Many
我對ASP.NET相當陌生,我正在嘗試為我的小項目創建一個合適的模型。
首先讓我解釋一下這個概念:我想創建一個ASP.NET應用程序來管理用戶獲得的雜志和論文。 另外,我想為雜志分配用戶。 很簡單。 一個雜志/紙可以有多個用戶(讀者),一個用戶可以有多個他讀的雜志。 這就是為什么這對我來說是多對多的關系。
我通讀了一些關於代碼優先的多對多關系的教程,據我所知,我將需要一個第三類,其中包括MagazineId和ReaderId。 我想問你們這是否正確:
雜志類:
[Table("MA_Magazine")]
public class Magazine
{
public int MagazineId { get; set; }
public string MagazineTitle { get; set; }
public string Notice { get; set; }
public virtual ICollection<Subscription> Subscriptions { get; set; }
}
讀者類別:
[Table("MA_Reader")]
public class Reader
{
public int ReaderId { get; set; }
public string ReaderName { get; set; }
public string Department { get; set; }
public virtual ICollection<Subscription> Subscriptions { get; set; }
}
訂閱類 (第三類,同時引用雜志和讀者ID):
public class Subscription
{
public int SubscriptionId { get; set; }
public int MagazineId { get; set; }
public int ReaderId { get; set; }
}
到目前為止,這正確嗎?
下一步是創建我認為的Viewmodel:
public class viewAllModel
{
public int MagazineId { get; set; }
public string MagazineTitle { get; set; }
public string Notice { get; set; }
public int ReaderId { get; set; }
public string ReaderName { get; set; }
public string Department { get; set; }
}
如果我想與其讀者用戶一起列出所有雜志,並且可能實施多選列表以將用戶分配給雜志,那么我該在哪里放置IEnumerable? 抱歉,我對此感到困惑,我敢打賭這有一個簡單的解決方案,但是正如我所說,我對所有這些都還很陌生,我還沒有完全理解Viewmodels的概念。
謝謝您的每條評論和小費。 非常感謝。 :D
正如Ricardo所述,您應該在Subscription
添加對Magazine
and Reader
引用,如下所示:
public class Subscription
{
public int SubscriptionId { get; set; }
public int MagazineId { get; set; }
public int ReaderId { get; set; }
[ForeignKey("MagazineId")]
public Magazine Magazine { get; set; }
[ForeignKey("ReaderId")]
public Reader Reader { get; set; }
}
要為雜志分配讀者,您可以使用多項選擇或復選框列表-具有允許您將Magazine
分配給Reader
。 在此頁面上,您將顯示所有Magazine
的列表,以允許選擇它們,然后為每個選定的項目創建一個Subscription
對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.