有没有办法用 Entity Framework 实现依赖注入(inject)和延迟加载?
当您连接到ObjectStateManagerChanged
时,我知道方法,但我想改用构造函数注入(inject),并使我的模型实体不知道任何 IOC 容器。 (假设我已经分离了 BLL 和 DAL,并且希望保持 BLL 尽可能少的外部依赖)。
谢谢。
最佳答案
完全防止在实体中使用依赖注入(inject)。看看this SO question例如。
尝试使用command / handler pattern用于编写业务操作。通过定义一个通用接口(interface),您可以通过实现简单的装饰器来实现良好的可扩展性和安全检查。
为了防止 UI 开发人员访问他们不应该访问的数据,请编写一个(或多个)装饰器来包装命令处理程序(和 query handlers ),并防止从业务层返回具有延迟加载功能的实体。相反返回 DTO s。这样业务层就有了完全的控制权。
关于c# - Entity Framework 和带有延迟加载的构造函数注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10660502/