テーブルが与えられた場合、そのテーブルで外部キー参照を取得しているすべてのテーブルを特定する方法はありますか?
実際のシナリオは次のようになります。データベースが与えられた場合、データベース内のデータからデータを取り込んでキャッシュに保存する必要がある一連の C# スキーマ クラスがあります。これらのスキーマはすべて、常にデータベースと同期している必要があります。
さて、上記の問題を解決する方法は 2 つあります。1 つは、データベースの変更が発生するたびに、保存されているすべてのスキーマを更新することです。これには非常にコストがかかります。もう 1 つは、ヒューリスティック ベースのアルゴリズムを使用して、データベースの変更によって影響を受けるスキーマを正しく識別し、それらのみを更新することです。
これを実装するために、テーブルが依存するものとして呼び出されるdependency tree/graph
ような構造を構築することを考えていました。テーブルのテーブルには制約があります。そのため、1 つ以上のテーブルで変更が発生するたびに、グラフをすばやく反復処理して、これらすべてのスキーマを更新する必要があることを伝えることができます。T1
T2
T1
foreign key
T2
Data Dictionaries を使用すると、この種の依存関係を見つけることができることはわかっていますが、 を使用しEntity Framework
ているため、 を介してそれを行う方法を探していますEntity Framework
。
また、誰かが同じことを行うためのより良いアプローチを持っている場合は、それも共有してください.