2014-11-16 272 views
1

我有一個Student類和一個Standard類。例如:實體框架關係

public class Student 
{ 
    public Student() { } 

    public int StudentId { get; set; } 

    [Required] 
    public string StudentName { get; set; } 

    public int StdandardId { get; set; } 

    public virtual Standard Standard { get; set; } 
} 

public class Standard 
    { 
    public Standard() 
    { 
     StudentsList = new List<Student>(); 
    } 
    public int StandardId { get; set; } 
    public string StandardName { get; set; } 
    public string Description { get; set; } 

    public virtual ICollection<Student> Students { get; set; } 
    } 

現在我儲存的記錄是這樣的:

我有一些標準的條目已經在數據庫中。假設我有擁有ID 4.現在我存儲對應於

Student s=new student(); 
s.StudentName="Priyesh"; 
s.StandardId=4; 
context.Student.add(s); 
context.savechanges(); 

現在我想回到學生對象返回設置,但我得到標準的對象爲空標準的對象與UI學生一個標準條目(s.Standard一片空白)。請提出解決方案。

+0

將標準實例添加到學生s.Standard = context.Standard.findById(4);' –

回答

0

您需要使用Id 4檢索標準對象,並將學生添加到它的Students集合中,並將Standard對象entityState設置爲Modified,並且新學生應該添加實體狀態,然後保存更改。

這將添加新學生並將其鏈接到標準實體。

所以你的代碼會喜歡這個僞代碼

var standard4 = context.Standards.SingleOrDefault(s=> s.Id == 4); 
if(standard4 != null) 
{ 
    var s=new student(); 
    s.StudentName="Priyesh"; 

    standard4.Students.Add(s); // this will set the State for Student to be Added 
    context.Entry(standard4).State = EntityState.Modified; 
    context.savechanges(); 
} 

希望有所幫助。