簡體   English   中英

LINQ:將新數據集插入與現有實體的多對多關系中

[英]LINQ: Insert new dataset into many-to-many relation with existing entities

我有兩個實體,分別是英語和德語。 它們都具有ID,Vocable字段。

為了將翻譯彼此聯系起來,我創建了表GermanEnglish,該表保存了第一個實體和可發音的單元首先出現的單位的ID。

一次插入一個具有多個翻譯的可發音對象(將更改提交到GermanEnglish-object之前)效果很好。 當我想向現有的可發音對象添加翻譯時,出現錯誤,表明該值已存在於數據庫中(我將Vocable字段定義為UNIQUE)。

我嘗試了以下方法:

using (VokabeltrainerDBDataContext context = new VokabeltrainerDBDataContext())
var german = from voc in context.German
           where voc.GermanWord.Equals(txtVocable.Text)
           select voc;

// if the german word exists in the database...
if (german.Any())
{
   foreach ( English englishWord in englishTranslations)
   {
      var germanEnglish = new GermanEnglish();
         germanEnglish.English = englishWord;
         germanEnglish.Unit = unit;
         germanEnglish.German.Add(german); // add-method not available!
      context.GermanEnglish.InsertOnSubmit(germanEnglish);
   }
} else {...}
context.SubmitChanges();

...但是添加方法不可用。 在所有問題和教程中,我只看到有人使用添加方法。

我的代碼中有錯誤嗎? 還是這種方法不再可用? (如重命名為InsertOnSubmit的添加方法)

據我了解您的示例EnglishGerman是具有EnglishGermanID, Unit, EnglishID, GermanID

因此,您無法添加德語列表。 您只能分配germanEnglish.German = german (在這種情況下只能是一個對象)...我是這樣認為的,但是在linq中我並不陌生

暫無
暫無

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

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