Jam*_*Sun 5 c# generics asp.net-mvc entity-framework
我实际上是在重新创建项目的默认架构.在这篇文章中,我希望你不仅可以帮助我,还可以思考,讲述和改进现有方法.这可能是非常有用的挑战.此默认架构可以与所有人自由共享.所以这里是描述:基本上MVC是我们的观点.我们遵循OOP和层编程概念.我们还将使用SQL Server和EF DB First.所以这是我到目前为止所做的:我在我的解决方案中创建了4个层:
我已经使用像getAll
和getById
和crud func这样的泛型函数实现了BL.这些函数会调用DAL泛型函数,这也是准备好的.现在一个重要的问题是:将DAL函数实现为GENERIC是否正确?请考虑这种情况:
从UI我们发布模型到动作,在行动中我们称为BL Func(BL.insert
(模型)).该BL.Insert
FUNC会调用类似DAL.Add
(模型)(注意BL将再次调用DAL并会告诉它想要的东西).现在,DAL.Add
func必须将3条记录插入3个不同的表中(模型从UI层传递).我认为这不能通过DAL GENERIC funcs来实现.那么,在注意到关注点分离的情况下,实现图层和关系的正确和标准方法是什么?
在我的行动中我会:
[HttpPost]
public ActionResult Insert()
{
Bl.EntityBase.Article.Insert(new Article());
return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)
在BL我会:
public void Insert(T obj)
{
Da.Repository<T>().Insert(obj);
}
Run Code Online (Sandbox Code Playgroud)
在我的DAL中,我有:
public virtual void Insert(T entity)
{
DbEntityEntry dbEntityEntry = Db.Entry(entity);
if (dbEntityEntry.State != EntityState.Detached)
{
dbEntityEntry.State = EntityState.Added;
}
else
{
Set.Add(entity);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
234 次 |
最近记录: |