我一直在搜索有关IoC / DI开发的大量信息,但是我没有找到太多有关如何将ORM集成到IoC / DI开发中的信息。
IoC是否应该了解ORM?或相反亦然?
映射“ ORM类型”时,IoC配置映射如何工作?
例:
public class Person : IPerson
{
private IPersonModel _model;
public Person(IPersonModel model)
{
_model = model;
}
}
IoC.Register<IPerson>.As<Person>();
IPerson = IoC.Resolve<IPerson>();
IoC / ORM如何在这里工作,IPersonModel可以是我中的任何人
数据库(或其他数据存储)?
我觉得必须有这样一种方法:
IPerson = IcO.Resolve<IPerson>(() => PersonId = 50);
任何人都想解释更一般的方法如何将IoC与ORM集成?
最佳答案
为什么需要一个Person类和一个PersonModel?
我将使用IoC容器来解析返回正确IPerson的正确存储库。
例如:
IPersonRepository personRepo = ObjectFactory.GetInstanceOf<IPersonRepository>();
int id = 12;
IPerson person = personRepo.GetBy(id);
您的所有ORM逻辑都将封装在您的存储库中。
有关存储库模式Here的更多信息