在web应用程序中构建存储库、实体框架的正确方法
本文关键字:框架 实体 方法 应用程序 web 构建 存储 | 更新日期: 2023-09-27 18:10:11
我正在学习实体框架和建立一个简单的web应用程序。我在Visual Studio中使用ASP.net Web Pages (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;
}
}
这很简单,我现在只是添加记录。我有几个问题:
我想在整个项目中使用一个DBContext,如果我需要从中读取一些数据,例如,如果我想列出分支的详细信息,我将这样做:
cDB DB = new cDB(); Branch curBranch = new Branch(); curBranch = DB.getContext().Branches.Find(1);
这样做对吗?
我可以在页面中使用 m.s branches . add (branch);代码,也许我不需要在cDB类中这样做?看起来好多了吧?
我检查它是否是一个新的记录或更新像这样:
if (branch.bra_id == 0) { m.Branches.Add(branch); }
再问一次,这是正确的方式吗?
谢谢
无论何时添加抽象层,您都需要准确地理解通过该抽象获得了什么。IMHO,在EntityFramework之上添加存储库模式并没有添加任何有用的东西,因为EF DbContext就是存储库。
进一步阅读:基于UnitOfWork的存储库不是一个好主意