首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC工作单元

MVC工作单元
EN

Stack Overflow用户
提问于 2013-11-19 21:12:16
回答 2查看 141关注 0票数 0

我看到了一些在context类中使用ASP.NET MVC Unit of Work来执行事务提交的应用程序示例。

这是一个很好的实践吗??

代码语言:javascript
复制
public interface IUnitOfWork
{
    void Commit()
}

public class DatabaseContext : DbContext, IUnitOfWork
{
    public DbSet<Entity> Entity { get; set; }

    public void Commit()
    {
        base.SaveChanges();
    }
}

public class EntityRepository : IRepository<Entity>
{
    private DatabaseContext _context;

    public EntityRepository(DatabaseContext Context)
    {
        _context = Context;
    }

    void Insert()
    {
        _context.Entities.Add(Entity);
    }

    void Save()
    {
        _context.Commit();
    }
}

或者更好

代码语言:javascript
复制
public interface IUnitOfWork
{
    void Commit()
}

public class DatabaseContext : DbContext
{
    public DbSet<Entity> Entity { get; set; }
}

public class EntityRepository : IRepository<Entity>, IUnitOfWork
{
    private DatabaseContext _context;

    public EntityRepository(DatabaseContext Context)
    {
        _context = Context;
    }

    void Insert()
    {
        _context.Entities.Add(Entity);
    }

    void Commit()
    {
        _context.SaveChanges();
    }
}

我不知道这个方法,你说呢?

EN

回答 2

Stack Overflow用户

发布于 2013-11-19 21:58:22

这是我实现的类的一部分

代码语言:javascript
复制
public class UnitOfWork : IUnitOfWork
{
    private ModelEntities _context;

    public ModelEntities Context
    {
        get { return _context; }
        set { _context = value; }
    }
    public UnitOfWork(ModelEntities context)
    {
        _context = context;
    }
    public void Save()
    {
        _context.SaveChanges();
    }
    public void Dispose()
    {
        this.Dispose(true);
    }
    public void Dispose(bool dispose){
        _context.Dispose();
    }
}

除此之外,我们还使用工厂来获取UnitOfWork的一个实例

票数 0
EN

Stack Overflow用户

发布于 2017-02-16 20:59:30

我认为你应该改变你创建存储库的方式。工作单元的思想是为所有事务提供唯一的对象。考虑更改存储库的构造函数,以接收唯一的工作单元,而不是上下文。

看一下:

https://aarcoraci.wordpress.com/2017/02/15/asp-net-mvc5-entity-framework-repository-pattern-and-unit-of-work-revisited/

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20072500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档