[英]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.