0

EF で TPT 継承を使用することを検討しています。次のテーブルがあります。

StockLocation StockLocationType

StockLocationType には次のタイプが含まれます。

一括選択可能セキュア

StockLocation をベース テーブルとして使用し、バルクで選択可能で安全なテーブルを作成することを考えていました。安全なテーブルには、ロックされた場所をロックして、誰もそこから選択できないようにする列があります。

ロケーションをピッキング可能からセキュアに切り替えるには、ピッキング可能テーブルからデータを削除してセキュア テーブルに挿入し、ロケーションがロックされているときにロックされた列を true に設定する必要がありますか? 場所のロックが解除されたら、安全なテーブルから選択可能なテーブルに戻しますか?

または、各テーブルに重複したレコードがありますか?

2 つのテーブル間で継続的にデータを渡しているようです。

アドバイス/提案は素晴らしいでしょう。

4

1 に答える 1

0

ロケーションをピッキング可能からセキュアに切り替えるには、ピッキング可能テーブルからデータを削除してセキュア テーブルに挿入し、ロケーションがロックされているときにロックされた列を true に設定する必要がありますか?

これは継承のユースケースではありません。エンティティのタイプは永続的です。EF でエンティティの種類を変更することはできません (SQL をデータベースで直接実行することで変更できますが、これは EF をハッキングしており、予期しない結果を招く可能性があります)。

または、各テーブルに重複したレコードがありますか?

派生型の単一のテーブルにしかレコードを保持できないため、これもほとんど達成できません。そうしないと、EF はそれがどの型であるかを理解できず、エラーが発生します。

2 つのテーブル間で継続的にデータを渡しているようです。

データベースがこのように設計されている場合、データを渡す必要があり、そのために EF で通常のナビゲーション プロパティを使用する必要があります。

于 2012-08-23T12:20:47.947 に答える