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对象。 –

相关问题