类类型现在,我有一个这样的枚举:返回基于int值
public enum ReferenceType
{
Language = 1,
Period = 2,
Genre = 3
}
语言,时期和流派是映射回表在我的数据库中的所有实体类。我也有模型类,它们将实体类几乎映射为1,然后我将它们显示在视图中。
我也有这样的服务方法:
List<Model> Get<Model, Entity>()
where Model : BaseModel
where Entity : BaseEntity;
我可以把它像Service.Get<LanguageModel, Language>()
,它会从表语言从我的数据库返回的每一行,并自动将其转换为LanguageModels,我将在随后在我看来显示。
我想创建围绕Get()
方法,你只需要在一个整数传递的包装方法,它会自动调用我在实体和模型类的类型Get()
方法填充。唯一的问题是我很难在这背后的实际实现中包装我的头。
的伪代码将是沿着线:
- 呼叫
WrapperGet((int)ReferenceType.Genre)
- 包装方法解决实体类型(
Genre
)和模型类型(GenreModel
) - 调用
Get()
方法与解决的实体和模型类型,所以它会Get<GenreModel, Genre>()
- 返回结果
我将如何真正在C#中实现这一点?
所以基本上你想有一个通用的存储库之后改变它解决此... ORM,你使用的是什么,是实体框架? – McGarnagle 2012-07-05 21:03:57
是的。我们使用EF 4.0 – 2012-07-05 21:04:24
如果我对你有所了解,对于AutoMapper来说,这看起来很不错,它是一个基于规则的引擎,用于将一个类转换为另一个类。 – neontapir 2012-07-05 22:04:02