コア製品スイート(データベースからインポートされたエンティティ)で使用される約300個のエンティティを含むEF4 EDMXがあります。コアEdmxを拡張する、EF4に複数のEdmxを追加
私たちは新しいクライアントを獲得するときに、余分な情報を保存したいと思っており、私たちにビジネスドメインの外で完全なカスタムプロセスを開発させたいと思っています。例えば。私たちはセキュリティ会社と契約を結び、セキュリティレベルに関する情報を保存し、これらのレベルで動作するプロセスを持つことを望んでいました。
いずれの場合も、カスタムテーブルを追加したり、既存のエンティティにカスタムフィールドを追加したりする必要があります。コアクラスライブラリがカスタムテーブルなどで捨てられていなかった以前の技術でこれを行う良い方法がありました。カスタムクラスライブラリのコアエンティティ(EFのEntityObjectに準拠)から継承し、必要に応じてカスタマイズを追加しました。
同様に、これらのカスタムテーブルと属性をコアEDMXに追加することは望ましくありません。カスタムEDMXの中核となるEDMXから基本的に「継承」したいと考えています。新しいカスタムEDMXは、カスタム化を追加できる別のクラスライブラリです。継承により、コアEDMXでできることすべてを、さらに少しでも行うことができます。
私たちは(私たちは、モデル最初のアプローチを使用していない)、このブログの記事に基づいて、当社のリポジトリを生成するために、T4テンプレートを使用している:私たちが必要のよう
我々はEDMXを延長することはできますか?
我々は1つのハックソリューションは、以下のように別々のEDMXにカスタムエンティティを返すコア実体上のメソッドの拡張子を思い付いた:これは、いくつかの明白な理由のためにかかわらず、理想的ではない
public static class CoreEntityExtensions
{
public static EntityConnection EntityConnection;
public static CustomUserEntity CustomUserDetails(this User coreUser)
{
ICustomUserEntityRepository customUserRepository = new CustomUserEntityRepository(EntityConnection);
return customUserRepository.All().SingleOrDefault(u => u.id == coreUser.id);
}
}
。
ご迷惑をおかけして申し訳ありません。
あなたはそれを行う方法を見つけましたか? – frabiacca