我想在实体框架和Dapper之间创建抽象层。在运行时,我可以选择实体框架或Dapper,或者我也将选择它们。我知道我可以使用界面
public IORM{
Save();
Delete();
//other ORM functions
}
public EntityFramework : IORM{
public Save(){
SaveChanges();
}
public Delete(){
Remove();
}
}
public Dapper: IORM{
public Save(){
//save code goes here
}
public Delete(){
//delete code goes here
}
但这是基本操作,不知道如何在.net core 2.0 CofigureServices()
方法中进行配置。
不同ORM之间的抽象是否可取?如果是的话怎么样 在.net中实现Entity框架和Dapper之间的抽象层 核心2.0?
答案 0 :(得分:4)
始终建议将问题分开。但是,一个完整的ORM可以隐藏在一个接口定义背后,这是一种幻觉。 ORM的运行时行为可能会对整个应用程序产生相当大的影响,并且需要大量工作才能实现“交换”#34; ORM。维持这种能力的理由不是很多。 你背后的动机是什么?
当然,抽象具体的ORM工作是个好主意。具体的例子真的取决于你的整体架构,但提到一些要点: