簡體   English   中英

使用實體框架插入記錄(數據庫優先)

[英]Insert record using entity Framework (database first)

有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類

圖片: 這里

..

和表:( “所有列”不是數據庫表中的字段)

圖片: 這里

你可以這樣嘗試嗎

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

我有一個解決方案,我只需要定義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;
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM