私はしばしば、ドメイン固有のIDを使って他のエンティティへの参照を集約している状況があります。 Entity Frameworkを使用して集約をリポジトリ経由で保存すると、ドメインIDではなく参照先エンティティのデータベースIDを取得する必要があります。エンティティフレームワークを挿入中に外部キーを見つけるように同軸化する方法はありますか?
例えば、私は(任意のデータベースIDの欠如に気づく)自分のドメインでこれらのクラスを持っていると言う:
MyDomainEntity
- はSomeProperty
- IsoLanguageCode(外部ドメイン
- をMyDomainEntityID識別子)
言語
- IsoLanguageCode(ドメイン識別子)
- 名前 Entity Frameworkのコードファーストで
、このようなものになり、私のドメイン持続するために私のエンティティクラス:
MyDomainEntityを
- DBID
- SomeProperty
- 言語ID(データベースの外部キー)をMyDomainID
- (主キー)
LanguageEntity
- DBID
- IsoLanguageCode
- 名前
MyDomainEntityのインスタンスを保存するには、言語のデータベースIDを取得するためにデータベースを追加呼び出しする必要があります。これにより、データベースへの2回の呼び出しが行われます。純粋なSQLで作業していた場合、IsoLanguageCode値に基づいてLanguageIdを設定するinsert文を作成し、1つのステートメントで挿入を完了できます。
私の質問は、Entity Frameworkを検出し、外部キーデータベースIDを1回の呼び出しで割り当てることは可能ですか?または、MyDomainEntityを構築するために、常にLanguageEntityを取得する必要があります。