我是一名初级 Web 开发人员,每天都在努力学习更多东西。
你们使用 Linq 执行 MVC 存储库模式的最佳实践是什么?
我用的那个:
使用 getAll()、getOne()、Update()、Delete() 等 CRUD 方法使用我的 .tt 文件的确切名称创建额外的类,用 Entity Framework 填充我自己的类并返回它,或者使用实体粗略的框架
这是我实际做的一个例子。
这是我的类的 getAll 方法,例如 User
public class CEmployee : CResult
{
public string name{get;set;}
public string lastname{get;set;}
public string address{get;set;}
//Extracode
public string Fullname // this code is not in the .tt or database
{
get
{
return name + lastname;
}
}
public <List>CEmployee getAll()
{
try
{
var result = (from n in db.Employee
select new CEmployee // this is my own class I fill it using the entity
{
name = n.name,
lastname = n.lastname,
address = n.address
}).ToList();
if (result.Count > 0)
{
return result;
}
else
{
return new List<CResult>
{
new CResult
{
has_Error = true,
msg_Error = "Element not found!!!!"
}
}
}
}
catch
{
return Exception();
}
}
}
我做所有事情的方式都是返回一个填充的类型,但在网络上我看到人们正常返回实体类型,但我这样做是为了操纵我的响应,如果我想返回额外的信息,我例如,只需要嵌套一个列表,最好的方法是什么,返回 mytype 或返回实体类型?
PD,我也像我的 ViewModel 一样使用这个类。我对我的所有类都这样做。
最佳答案
我目前的一个项目使用依赖注入(inject)来设置 DAL(数据访问层)。我们还使用了 n 层方法;这将存储库的关注点与业务逻辑和前端分开了。
因此,我们将从应用程序中相互链接的 4 个左右的基础项目开始。其中之一处理数据访问,这将是您的存储库;阅读 Ninject 了解更多信息。我们的下一层是我们的域,它包含由 t4 模板(.tt 文件)构建的实体以及我们的 DTO(数据传输对象,它是用于在层之间移动数据的平面对象)。然后我们有一个服务层,服务层或业务逻辑层包含处理 CRUD 操作和任何所需数据操作的服务对象。最后,我们的前端是 Model-View-ViewModel 层,负责处理 Controller 和页面构建。
MVVM 调用服务,服务对象调用数据访问层,Entity Framework 与 Ninject 一起访问数据并在数据跨层移动时将其存储在 DTO 中。
现在这可能看起来过于复杂,具体取决于您正在编写的应用程序,这是为高度可伸缩和可扩展的 Web 应用程序构建的。
关于c# - linq ASP.NET MVC 存储库模式的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22058495/