0

次のようなマッピングテーブルがあります。

Article_to_Categories

記事 ID カテゴリ ID

linq2sql を使用してこのテーブルに挿入するにはどうすればよいですか?

4

2 に答える 2

2

Article テーブルと Category テーブルに対応する行が存在する場合、これは標準の挿入と変わらないはずです。

一方、それらのテーブルが空の場合は、SubmitChanges を実行する前にそれらのテーブルに行を挿入する必要があります。

Linq-to-Sql が優先順位を管理します。

全体として、単純に Article_to_Categories テーブルに行を挿入して、何が起こるかを確認することをお勧めします。


編集: Linq-to-Sql で行を挿入する方法がわからない場合は、Web 上の例を検討してください。

于 2009-11-19T15:39:09.410 に答える
0

私の経験では、このような関連付けテーブルにレコードを挿入する際に同様の問題が発生しました。私にとってうまくいくのは、外部キーの関係を尊重し、外部キー ID だけでなくオブジェクトを追加することです。

たとえば、これは私にとってはうまくいきませんでした:

var newRec = new Article_To_Categories
{
    Article_ID = 1,
    Category_ID = 2
};

DataContext.Article_To_Categories.InsertOnSubmit(newRec);
DataContext.SubmitChanges();

私のために働いたのはこれでした:

var newRec = new Article_To_Categories
{
    Article = DataContext.Articles.Where(a => a.Article_ID == 1).SingleOrDefault(),
    Category = DataContext.Articles.Where(a => a.Category_ID == 2).SingleOrDefault()
};

DataContext.Article_To_Categories.InsertOnSubmit(newRec);
DataContext.SubmitChanges();

私の調査に基づいて推測できる限り、ID ではなくオブジェクトを追加すると、結果の Article_To_Categories オブジェクトは関連レコードの内容で正しく更新されます。更新プロセスの一部として、関連するレコードを再挿入してはならないという通知があります。新しいレコードを ID で更新するだけでは、LINQ-to-SQL が Article テーブルと Category テーブルからレコードを自動的に取得するとは思えません。オブジェクトまたはデータベース。

于 2010-01-03T18:56:31.517 に答える