Asp.net 使用实体框架插入记录(首先是数据库)

Asp.net 使用实体框架插入记录(首先是数据库),asp.net,entity-framework,linq-to-sql,linq-to-entities,entity-relationship,Asp.net,Entity Framework,Linq To Sql,Linq To Entities,Entity Relationship,有3个数据库表(电影、评论、用户) 评论表包括(MemeberID、MovieID、评论文本、Rate、ReviewDate) (审阅中的MemeberID和MovieID是members表和movies表的FK) 这部电影可以有很多评论,我正在尝试将评论添加到电影中 即使我有电影类和成员类,我也有一个问题,为了插入评论,我需要将它引用到电影和用户,链接他们,我不知道如何做 此代码出错: " The relationship between the two objects cannot be d

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

评论表包括(MemeberID、MovieID、评论文本、Rate、ReviewDate) (审阅中的MemeberID和MovieID是members表和movies表的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 ReviewToInsert = videoLib.Reviews.CreateObject();
ReviewToInsert.MovieID = _TheMovie.MovieID
...
...
videoLib.Reviews.AddObject(ReviewToInsert);
videoLib.SaveChanges();

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

并使用try&catch检测同一行中是否有相同的MovieID(fk)和MemberID(fk)(因为审阅在数据库中没有自己的id)


例外情况很常见。请先搜索再提问。我做了,但仍然没有找到答案/仍然-->无法定义这两个对象之间的关系,因为它们附加到不同的ObjectContext对象。
   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;
        }
    }