0

私のプロジェクトでCommonLibrary .NETを使用したいと思いますが、古いコードがあり、コードファーストモデリングを実行できません。私はVS2010ツールを使用してDBからモデルを生成します。CommonLibrary.NETリポジトリとEF 4は連携して動作しますか?

しかし、それは設計ツールが生成されるボックスのエンティティのうちCommonLibrary内のリポジトリで使用することはできませんと思われ、それはエラーを与える:

Error 1 The type 'RepositoryTest.UserInfo' cannot be used as type parameter 'T' in the generic type or method 'ComLib.Entities.RepositorySql<T>'. There is no implicit reference conversion from 'RepositoryTest.UserInfo' to 'ComLib.Entities.IEntity'.

は誰にもこの問題を抱えました、もしそうなら、単純な解決策がありますか?

誰かがEFエンティティをサポートするリポジトリを実装する良い代替フレームワークまたはプロジェクトを持っているかどうかも知りたいと思います。 私はTDDingですので、同じフレームワークのメモリにリポジトリの実装をしたいのですが、これが最初にこのフレームワークを選択した理由です。

答えて

1

それはComLib.Entities.RepositorySql<T>これはあなたのエンティティクラスは、リポジトリのジェネリック型パラメータとして使用されるために、このインタフェースComLib.Entities.IEntityを実装する必要があることを意味

public class RepositorySql<T> where T : IEntity 
{ 
    // ... 
} 

ような一般的な制約、何かを持っていることになります。だからあなたのクラスはのようになります。

public class UserInfo : IEntity 
{ 
    // implementation of IEntity 
    // look in documentation what you have to implement 
    // or hit ctrl-period in Visual Studio on IEntity 
    // to get a default implementation 

    // your custom code 
} 
+0

私はそれを理解するが、私は助け –

+2

@デビッドMZを探しています、なぜこれが、私は、自動コード生成を使用していますし、IEntity実装にクラスを変換する問題です。ですあなたは 'EntityObject'派生エンティティを使用していますか?次に、カスタムパーシャルクラスにインターフェイスを実装できます。 T4 POCOジェネレータを使用している場合、T4テンプレートを修正して、 'IEntity'から各エンティティを派生させることができます。 – Slauma

関連する問題