gpt4 book ai didi

c# - Entity Framework 4 DB-First 依赖注入(inject)?

转载 作者:太空狗 更新时间:2023-10-30 00:16:12 24 4
gpt4 key购买 nike

我更喜欢创建我自己的数据库、设置索引、唯一约束等。使用 edmx Entity Framework 设计器从数据库生成领域模型是小菜一碟。

现在我对使用依赖注入(inject)设置一些存储库很感兴趣。我查看了 StackOverflow 上的一些文章和帖子,似乎侧重于代码优先方法。如何创建一个通用存储库来处理 CRUD 并使用依赖注入(inject)来选择实现细节是非常巧妙的。

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

有没有人有任何资源可以指导我在使用 db-first/代码生成技术时如何使用依赖注入(inject)?

最佳答案

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

使用通用存储库模式,例如找到的那个 here ,IRepository 接口(interface)是您注入(inject)到 ViewModels/Controllers/Whatever 中的东西。

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

我们目前正在使用 EF4 DB-first 和我在上面链接的存储库模式做完全相同的事情,它运行得非常好。

关于c# - Entity Framework 4 DB-First 依赖注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8448791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com