C# 实体框架4db第一依赖注入?

C# 实体框架4db第一依赖注入?,c#,asp.net,entity-framework,dependency-injection,C#,Asp.net,Entity Framework,Dependency Injection,我更喜欢创建自己的数据库、设置索引、唯一约束等。使用edmx实体框架设计器可以从数据库生成域模型 现在我感兴趣的是使用依赖注入来建立一些存储库。我看了一些关于StackOverflow的文章和帖子,似乎主要关注代码优先的方法。如何创建一个通用存储库来处理CRUD,并使用依赖项注入来选择实现细节,这是非常巧妙的 我也想做同样的事情,但edmx进程生成的域模型似乎继承了具体的类,而不是实现接口(ObjectContext/ObjectSet而不是IOObjectContext/IOObjectSet

我更喜欢创建自己的数据库、设置索引、唯一约束等。使用edmx实体框架设计器可以从数据库生成域模型

现在我感兴趣的是使用依赖注入来建立一些存储库。我看了一些关于StackOverflow的文章和帖子,似乎主要关注代码优先的方法。如何创建一个通用存储库来处理CRUD,并使用依赖项注入来选择实现细节,这是非常巧妙的

我也想做同样的事情,但edmx进程生成的域模型似乎继承了具体的类,而不是实现接口(ObjectContext/ObjectSet而不是IOObjectContext/IOObjectSet)


是否有人可以向我提供任何资源,让我了解在使用db first/代码生成技术时如何使用依赖项注入?

也许我误解了你的问题,但EDMX生成从ObjectContext继承的代码这一事实并不能阻止你使用依赖项注入。听起来您担心无法将ObjectSet注入存储库,但这并不是设计使用它的方式

对于一个通用的存储库模式(如找到的模式),IRepository接口就是您注入到ViewModels/Controller/任何东西中的东西

因此,您不需要将IObjectContext或IObjectSet注入存储库;相反,将IRepository注入到需要它的类中,并提供使用对象集的IRepository接口的实现。然后,您可以模拟IRepository接口进行测试,或者切换到完全不同的具体存储库实现,而不会影响任何其他代码


目前,我们正在使用EF4 DB first和我上面链接的存储库模式进行完全相同的操作,它工作得非常好。

我自己一直在研究这个问题的答案,我得到了这个解决方案: 首先使用数据库创建实体模型后生成POCO模型


之后,实现非常简单,因为这与CodeFirst存储库和DI模式非常相似。但愿我能早点找到它!您好,指向存储库和DI(IoC)模式的链接不起作用