domain-driven-design - 可以将 Datacontext 设置为存储库中的属性吗?

标签 domain-driven-design repository-pattern datacontext

将datacontext设置为这样的属性是否有任何潜在问题:

存储库

public Repository()
{ 
    public DataContext dc {get;set;}

    public GetOrders(int id)
       { ...from dc.Orders...}
}

服务层:

public GetNewOrders()
   {
       ....
       Repository rep=new Repository();
       using {DataContext dc=new DataContext())
        { 
           rep.dc=dc;
           rep.GetOrders(id);
        }
    }

最佳答案

根据我的阅读,使用 DataContext “for more than one business conversation is usually the wrong thing to do 。”向下滚动到引用的为什么如此重要?部分。由于缓存和其他因素,您应该立即考虑您的 DataContext 陈旧。由此可以肯定地说,您不想将 DataContext 保留为所有方法都重用的属性。使用 Eric Duncan 的建议,您需要传入某种 DataContext 工厂来为每个查询获取新的上下文。

关于 DataContext 的讨论,APress Pro LINQ 一书中有 entire chapter在 DataContext 上,very last page其中还建议您“立即考虑 DataContext 陈旧。”

关于domain-driven-design - 可以将 Datacontext 设置为存储库中的属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/615960/

相关文章:

c# - Entity Framework Code First 多对多创建重复行

asp.net-mvc - 如何使用 linq2sql 存储库在我的 Asp.net Mvc 中实现缓存策略?

c# - 如何将元素绑定(bind)到属于控件根元素的属性?

authentication - DDD中的授权和身份验证(C#)

c# - 如何将标志属性与从枚举继承的类一起使用

c# - Entity Framework + ASP.NET Identity + Repository Pattern - 如何在加载用户的同时加载角色

linq-to-sql - 使用 IoC、依赖注入(inject)、工作单元的 Linq to SQL 的存储库模式

c# - 不一致的可访问性问题

c# - 为什么在 Onion Architecture 中公开服务而不是存储库?

iphone - 有 cocoa 的表单生成器吗?