我一直在搜索有关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的更多信息

07-26 08:39