CommonLibrary.NET存储库和EF 4一起工作?

时间:2011-07-23 15:14:50

标签: entity-framework frameworks repository repository-pattern

我想在我的项目中使用CommonLibrary .NET,但我有遗留代码,无法进行Code First建模,我使用VS2010工具从数据库生成我的模型。

但似乎设计工具生成的开箱即用实体不能与CommonLibrary中的存储库一起使用,它会给出错误:

  

错误1“RepositoryTest.UserInfo”类型不能用作类型   泛型类型或方法中的参数'T'   'ComLib.Entities.RepositorySql< T>'。没有隐含的参考   从'RepositoryTest.UserInfo'转换为   'ComLib.Entities.IEntity'。

是否有人也遇到过这个问题,如果是这样,可能有一个简单的解决方案?

我还想知道是否有人有一个很好的替代框架或项目来实现支持EF实体的存储库。 我是TDDing所以我想在同一个框架中在内存中实现一个存储库,这就是我首先选择这个框架的原因。

1 个答案:

答案 0 :(得分:1)

看起来ComLib.Entities.RepositorySql<T>有一个通用约束,类似于

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

这意味着您的Entity类必须实现此接口ComLib.Entities.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
}