Asp.net 使用实体框架插入记录(首先是数据库)
有3个数据库表(电影、评论、用户) 评论表包括(MemeberID、MovieID、评论文本、Rate、ReviewDate) (审阅中的MemeberID和MovieID是members表和movies表的FK) 这部电影可以有很多评论,我正在尝试将评论添加到电影中 即使我有电影类和成员类,我也有一个问题,为了插入评论,我需要将它引用到电影和用户,链接他们,我不知道如何做 此代码出错: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
" 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;
}
}