我正在使用C#,.NET Framework 4.0和Entity Framework Code First开发软件(库,网页,Web API,桌面应用程序等)。
开发此软件我正在使用Ninject依赖注入,并模式通用存储库和工作单元。
这是我第一次使用这些模式,我认为使用Ninject I可以解决耦合问题。
现在,我改进了数据库,改变了模型。该数据库具有与前一个相同的功能,但具有较少的表和较少的列。要做到这一点,我已经改变了我的E.F.的POCO课程,这就是我的所有问题。出现这些问题是因为我在业务逻辑中使用了这些POCO类,如果我更改它们,我必须改变业务逻辑。
我认为使用依赖注入我会将数据层与业务层隔离,但事实并非如此。如果要更改我的数据层,我必须更改业务层,我将两者结合起来。
这总是发生或我做错了什么?
答案 0 :(得分:0)
依赖注入允许您通常通过接口替换合同的替代实现。该合同由类型和方法组成,因此如果有任何更改,您将获得新合同。您的POCO是其中的一部分,所以不得不期望更改它们会产生返工。
如果您将实体框架之外的模型类分开并使用它们,您将获得更好的分离但更多的类型转换。