1

I have a Customers table, a Sports table, and Customers_Sports join table. The last table tells me which customers play what sports, ie contains foreign keys to the other two tables.

Foreign key constraints are enforced, and foreign keys cannot be null.

Using LINQ, is there a simple way to delete a customer and at the same time delete all the records in the join table that reference the customer?

I can do it the hard way, ie first delete relevant records from the join table, then delete the customer's record from Customers.

4

1 に答える 1

0

シンプルこそ真のキッカーです。 それを自動的に行う方法はありません。 あなたは基本的に、特定の顧客に一致する Customer_Sports テーブルからすべてを削除してから、顧客を自分で削除することに行き詰まっています。実行する前に両方を削除SubmitChanges()しても、外部キー制約違反に遭遇することはないと思います。

本当に凝ったものにしたい場合は、リフレクションを使用して、Linq から SQL へのカスケード削除のような外部キーがあったときにいつでもこれを行う汎用関数を作成できます。

これを行うようにデータベースをセットアップすると、おそらくエラーが発生しにくくなります。パフォーマンスの問題があることがわかっていない限り、パフォーマンスについて心配する必要はありませんが、おそらくパフォーマンスも向上しています。

于 2012-07-12T05:39:07.307 に答える