在Web应用程序中构建存储库,实体框架的正确方法

时间:2015-08-28 16:26:45

标签: c# asp.net entity-framework

我正在学习实体框架并构建一个简单的Web应用程序。我在Visual Studio中使用ASP.net网页(Razor 3)。

我想为数据库操作创建一个基本结构。我有实体,我可以添加,用它更新记录,但我还在为那些使用一个类。我有一个名为cDB的类,其中有很少的方法如下:

public class cDB
{
    private maasEntities1 m = new maasEntities1();

    public void createUpdateBranch(Branch branch)
    {
        if (branch.bra_id == 0)
        {
            m.Branches.Add(branch);
        }
    }

    public void saveChanges()
    {
        m.SaveChanges();
    }

    public maasEntities1 getContext()
    {
        return m;
    }
}

这很简单,我现在只是添加记录。我对此几乎没有问题:

  1. 我想在整个项目中使用一个DBContext,如果我需要从中读取一些数据,例如,如果我想列出一个分支的详细信息,我会这样做:

    cDB DB = new cDB();
    
    Branch curBranch = new Branch();
    curBranch = DB.getContext().Branches.Find(1);
    

    这是正确的方法吗?

  2. 我可以在页面中使用 m.Branches.Add(branch); 代码,也许我不需要在cDB类中执行此操作?它虽然看起来更好?

  3. 我检查这是一条新记录还是这样的更新:

    if (branch.bra_id == 0)
    {
        m.Branches.Add(branch);
    }
    

    再次,这是正确的方式吗?

  4. 由于

1 个答案:

答案 0 :(得分:2)

无论何时添加抽象层,您都需要准确理解抽象所获得的内容。恕我直言,在EntityFramework之上添加存储库模式并没有添加任何有用的东西,因为EF DbContext是存储库。

进一步阅读:https://peach.blender.org