gpt4 book ai didi

c# - linq ASP.NET MVC 存储库模式的最佳实践是什么

转载 作者:太空宇宙 更新时间:2023-11-03 13:27:03 26 4
gpt4 key购买 nike

我是一名初级 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com