0

非常に一般的なデータベース コードを書いています。別のエンティティに関連するエンティティ セット内の型のセットをクエリする方法を見つけたいと思います (LINQ to SQL EntityFramework、データベース ファーストを使用)。

したがって、たとえば、製品がカテゴリに属している可能性があります。

SELECT * FROM Products p INNER JOIN Categories c ON p.CategoryId = c.Id

私のデータベースでは、p.CategoryId は非 NULL になる外部キー制約です。(つまり、製品はカテゴリに属している必要があります)。

ここで、カテゴリから削除しようとすると、エラーが発生します。これは、カテゴリに関連する製品がまだあり、その関係に CASCADE DELETE が適用されていない (またはしたくない) ためです。

私がやりたいことは、DataContext ライブラリを調べて、カテゴリが製品によってキー化されていることを動的に判断することです。そのため、カテゴリから削除する場合は、最初に製品から削除する必要があります。

「動的に」とは、コードがタイプまたは関係を事前に認識していないことを意味します (製品またはカテゴリ エンティティについて具体的には認識していません) が、リフレクションを使用して DLL を評価し、これらの関係を解決します。

DataContext 関連のコードを調べたところ、特定のエンティティの EntityRef プロパティを確認できました (問題の半分は解決されました) が、これらの関係が必須かオプションか (つまり、NON -NULL または NULLABLE) を基になるデータベースで使用します。

?

4

1 に答える 1