0

シンプルなシナリオ

[ClientTable]: ClientId, ClientName, Phone, Age
[CityTable]: CityID, CityName, Country
[ClientCityTable]: ClientCityID, ClientID, CityID

Client client = new Client("John", 123456789, 40);
City city = new City("NY", USA);
ClientCity clientCity = new ClientCity(client, city);

すべてのオブジェクト (テーブル) で InsertOnSubmit を作成する必要がありますか、それとも clientCity のみで作成する必要がありますか? それとも関係ない?どこが違うの?

編集

作るべきか聞いてる

DatabaseDC dc = new DatabaseDC(connectionString);
dc.Client.InsertOnSubmit(client);
dc.City.InsertOnSubmit(city);
dc.ClientCity.InsertOnSubmit(clientCity);
dc.SubmitChanges();

またはのみ

DatabaseDC dc = new DatabaseDC(connectionString);
dc.ClientCity.InsertOnSubmit(clientCity);//because this object has references to client and city
dc.SubmitChanges();

?

編集2

私はいくつかの試みをしましたが、 InsertOnSubmiton のみを使用してclientも、エントリは and にも挿入されCityますClientCity。どうすれば正しくできますか?

4

2 に答える 2

1

結果から言うと、特に問題ありません。どちらの方法も正しいです。

2番目の利点(insertonsubmitは1回のみ)

  • クリーナー
  • 少ないコード

最初の利点

  • Linq2sql を初めて使用する人にとって読みやすく、理解しやすい
  • また、正しい参照がない場合は、挿入が行われます (または、これが不利になるかどうかはあなた次第です)。

すでにわかっているように、結果は同じです。

于 2011-11-07T08:45:37.140 に答える
1

通常、挿入の前にリンクされたテーブルが存在することを確認する必要があります。そうしないと、エラーが発生する可能性があります (SQL テーブルを制約しているかどうかによって異なります)。

挿入および更新用のカスタム ストアド プロシージャ コールを作成することもできます。これらのプロシージャにより、リンクされたテーブルが正しいことが保証されます。

IMHO linq-to-sql は、複雑な選択を行うのには適していますが、データベースを更新するのは簡単ではありません。(多くの場合、深刻なパフォーマンスのボトルネックが発生するのを見てきました。)

于 2011-11-06T20:43:50.393 に答える