2

有3個數據庫表(電影,評論,用戶)插入記錄使用實體框架(數據庫第一)

審查表包括(MemeberID,MovieID,評論文章,速率,REVIEWDATE) (在MemeberID,和評論中的MovieID是會員表和電影表的FK) 電影可以有很多評論,我試圖給電影添加評論

即使我有電影類和成員類,我有問題,爲了插入評論,我需要把它引用到電影和用戶,鏈接它們,我不知道該怎麼做

這個代碼做一個錯誤:

" The relationship between the two objects cannot be defined because they are attached to different ObjectContext objects. " 

這是我的代碼...

public bool InsertNewReview(Movie _TheMovie, Member _TheMember, string _Text, byte _Rate, DateTime _ReviewDate) 
    { 

     Review ReviewToInsert = new Review() 
      { 
       MovieID = _TheMovie.MovieID, 
       MemberID = _TheMember.MemberID, 
       Movie = _TheMovie, 
       Member = _TheMember, 
       Rate = _Rate, 
       ReviewDate = _ReviewDate, 
       ReviewText = _Text 
      }; 

     videoLib.Reviews.AddObject(ReviewToInsert); 
     videoLib.SaveChanges(); 

      return true; 

    } 

..

有更多的數據插入到複習課堂

圖片:here

..

和表:(以下簡稱 「所有列」 是不是在數據庫表中的字段)

圖片:here

+0

的異常很常見。請在提問前進行搜索。 – Eranga

+0

我做到了,但仍未找到答案;/ –

回答

0

我得到了一個解決方案,我只需要定義MovieID,MemberID,而不是使用它們的對象

和使用嘗試&抓,以檢測是否thier相同MovieID(FK)和MEMBERID(FK)在同一行(因爲審查不具備在數據庫中自己的ID)

public bool InsertNewReview(string _MovieID, int _MemberID, string _Text, byte _Rate, DateTime _ReviewDate) 
    { 
     try 
     { 
      Review ReviewToInsert = new Review() 
      { 
       Rate = _Rate, 
       ReviewDate = _ReviewDate, 
       ReviewText = _Text, 
       MovieID = _MovieID, 
       MemberID = _MemberID 
      }; 

      videoLib.Reviews.AddObject(ReviewToInsert); 
      videoLib.SaveChanges(); 
      return true; 
     } 

     catch 
     { 
      return false; 
     } 
    } 
0

可以嘗試這樣

Review ReviewToInsert = videoLib.Reviews.CreateObject(); 
ReviewToInsert.MovieID = _TheMovie.MovieID 
... 
... 
videoLib.Reviews.AddObject(ReviewToInsert); 
videoLib.SaveChanges(); 
+0

still - >兩個對象之間的關係無法定義,因爲它們連接到不同的ObjectContext對象。 –

相關問題