2

有 3 个数据库表(电影、评论、用户)

评论表包括(MemeberID、MovieID、评论文本、Rate、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;

    }

..

有更多数据要插入 Review 类

图片:这里

..

和表:( “所有列”不是数据库表中的字段)

图片:这里

4

2 回答 2

0

我有一个解决方案,我只需要定义 MovieID、MemberID,而不是使用它们的对象

并使用 try & catch 来检测同一行中是否有相同的 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;
        }
    }
于 2012-11-07T09:15:51.263 回答
0

你能这样试试吗

Review ReviewToInsert = videoLib.Reviews.CreateObject();
ReviewToInsert.MovieID = _TheMovie.MovieID
...
...
videoLib.Reviews.AddObject(ReviewToInsert);
videoLib.SaveChanges();
于 2012-11-07T07:36:13.770 回答