0

データベーステーブルに基づいていくつかのビルディングブロックを構築して遊んでいます。

そこで、EDMX の「テンプレート」に基づいて、UsersManager と ValidationManager を作成しました。

これら 2 つのコンポーネントを MEF と疎結合にしたいと考えています。しかし、そのため、ValidationManager で公開されているエンティティ オブジェクトのインターフェイスを作成する必要があります。これらのインターフェイスを作成する簡単な方法はありますか?その方法で、EDMX で生成されたクラスを引き続き使用できますか?

ありがとう、ポール

4

1 に答える 1

0

テーブルを含むデータベースの例を使用すると、Productこれはあなたが達成しようとしていることです....

ここに画像の説明を入力

ただし、生成されたエンティティ クラスを引き続き使用します (標準の EF ジェネレーターまたは別の POCO ジェネレーターのいずれかを使用)。

よくわかりません-あなたがMEFについて言及しているように、それが直接関連しているとは思いません.

生成されたエンティティ クラスは、生成されたクラスを拡張できる部分クラスです。この場合は、インターフェイスを実装するために拡張します。

抽象化のレイヤーを導入するために次のインターフェースが使用されると仮定します...

    public interface IEntity {
        public bool IsDeleted { get; set; }
    }

拡張Productクラスを使用して新しいクラス ファイルを作成します...

    public partial class Product : IEntity {
        public bool IsDeleted {
            get {
                throw new NotImplementedException();
            }
            set {
                throw new NotImplementedException();
            }
        }
    }

これで、生成されたエンティティProductが部分クラスのカスタム コードで拡張され、EF を介して通常どおり使用できるようになりました。

UserManagerValidationManagerクラスが へのハード参照を持つ代わりにProduct、 への参照のみを持つようになりましたIEntity

質問の意味がわからなかった場合は、具体的に何をしたいのかを詳しく教えてください。

于 2012-12-25T18:06:47.833 に答える