我想在代碼中第一次編碼以下...因爲我剛剛開始我不能..請幫助..在此先感謝
1.學生:學生將有學生證,名字,姓
學生應該屬於一類和一個部分(基本上一個與每個實體一個關係)
2類:類將有CLASSID,名稱
類應該具有的集合學生和部門的集合(基本上與每個實體有多對多的關係)
3.部分:部分將有SectionID,名稱
Sectio n應屬於一類,應該有學生(帶班,基本上以一對一的關係之一,與許多學生的關係)的集合
下面是相同實體框架asp.net MVC外鍵
Students.cs代碼
public class Students
{
public int StudentsId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string UserName { get; set; }
public decimal Grade { get; set; }
public int ClassesId { get; set; }
public Classes Classes { get; set; }
public int SectionsId { get; set; }
public Sections Sections { get; set; }
}
Classes.cs
public class Classes
{
public int ClassesId { get; set; }
public string Name { get; set; }
public ICollection<Sections> Sections { get; set; }
}
Sections.cs
public class Sections
{
public int SectionsId { get; set; }
public string Name { get; set; }
public int ClassesId { get; set; }
public Classes Classes { get; set; }
public ICollection<Students> Students { get; set; }
}
如果我這樣做,我得到錯誤說:
引進國外KEY約束 「FK_dbo.Sections_dbo.Classes_ClassesId」表「節」可能會導致 循環或多個級聯路徑。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY約束。
我知道我可以使用流利的API擺脫這個錯誤,並告訴不要級聯刪除,但我不想這樣做。有沒有其他解決方案?請幫助
其實這個想法是創建一個學校結構......在學校裏有不同的班級......每個班級都有不同的部分。第一標準部分A,第一標準部分B,第二標準部分A,第二標準部分B,第二標準部分C等等。這裏的學生實際上屬於一個部分,部分屬於一個班級,但最終學生也屬於班級,班級將有在學生的代碼次數中提及,所以我覺得必須有一種關係。如果有其他方式來定義這種關係,請幫助。 –
只是想補充一點...這裏的班級規模很大,所以他們分爲幾個部分...例如,如果有80個學生在第一個標準,那麼他們將有40個學生分別在兩個部分A和B在第一標準......在這裏,如果學生在學校註冊,則必須屬於一個班級,並且如果班級具有班級,則該班級應該屬於班級內的一個部分...如果某個部分被刪除,則學生應該轉到班級的默認部分。 ..說部分A ..這將是偉大的,如果你可以幫助我的模型邏輯這個...謝謝你的答案。 :) –
@AmitRaya:對我來說,聽起來你的模型其實很好。您只需要禁用「學生」和「類」之間以及「學生」和「部分」之間關係的級聯刪除。這不僅在技術上是必要的,而且從業務角度來看,級聯刪除對我來說聽起來是錯誤的:當一個類被刪除時,學生不應該被刪除,他們應該被分配給另一個類。 – Slauma