C# 在模型(MVC)中使用LINQ查询
我正在创建一个web应用程序,是否可以在模型中使用LINQ查询,而不是在控制器中使用它C# 在模型(MVC)中使用LINQ查询,c#,asp.net,asp.net-mvc,linq,controller,C#,Asp.net,Asp.net Mvc,Linq,Controller,我正在创建一个web应用程序,是否可以在模型中使用LINQ查询,而不是在控制器中使用它 谢谢是的,您可以在模型中使用LINQ查询 以下是一个例子: using System.Linq; using System.Linq.Expressions; . . . public class PostRepository { DataClassesDataContext db = new DataClassesDataContext(); public IQueryable<Po
谢谢是的,您可以在模型中使用LINQ查询 以下是一个例子:
using System.Linq;
using System.Linq.Expressions;
.
.
.
public class PostRepository
{
DataClassesDataContext db = new DataClassesDataContext();
public IQueryable<Post> FindByParentId(int parentId)
{
return from post in db.Posts
where post.ParentID == parentId
select post;
}
使用System.Linq;
使用System.Linq.Expressions;
.
.
.
公共类PostRepository
{
DataClassesDataContext db=新DataClassesDataContext();
公共IQueryable FindByParentId(int parentId)
{
在db.Posts中从post返回
其中post.ParentID==ParentID
选择职位;
}
是,您可以在模型中使用LINQ查询
以下是一个例子:
using System.Linq;
using System.Linq.Expressions;
.
.
.
public class PostRepository
{
DataClassesDataContext db = new DataClassesDataContext();
public IQueryable<Post> FindByParentId(int parentId)
{
return from post in db.Posts
where post.ParentID == parentId
select post;
}
使用System.Linq;
使用System.Linq.Expressions;
.
.
.
公共类PostRepository
{
DataClassesDataContext db=新DataClassesDataContext();
公共IQueryable FindByParentId(int parentId)
{
在db.Posts中从post返回
其中post.ParentID==ParentID
选择职位;
}
我建议您在repository类中使用LINQ查询
然后在控制器中使用存储库方法
假设我有一个名为“CreateRepository”的存储库类,这是我的Createcontroller:
public class CreateController : Controller
{
CreateRepository CreateRepository = new CreateRepository();
public ActionResult Index()
{
var ListOfAllUserNames = CreateRepository.GetAllUserNames();
// etc etc
return View();
}
这是我的CreateRepository类:
public class CreateRepository
{
public List<User> GetAllUserNames()
{
return db.User.OrderBy(f => f.Username).ToList();
}
}
公共类CreateRepository
{
公共列表GetAllUserNames()
{
返回db.User.OrderBy(f=>f.Username.ToList();
}
}
这是我上面提到的一个例子。我建议您在repository类中使用LINQ查询 然后在控制器中使用存储库方法 假设我有一个名为“CreateRepository”的存储库类,这是我的Createcontroller:
public class CreateController : Controller
{
CreateRepository CreateRepository = new CreateRepository();
public ActionResult Index()
{
var ListOfAllUserNames = CreateRepository.GetAllUserNames();
// etc etc
return View();
}
这是我的CreateRepository类:
public class CreateRepository
{
public List<User> GetAllUserNames()
{
return db.User.OrderBy(f => f.Username).ToList();
}
}
公共类CreateRepository
{
公共列表GetAllUserNames()
{
返回db.User.OrderBy(f=>f.Username.ToList();
}
}
这是我上面提到的一个例子。你的意思是在视图中吗?因为模型是你传递给它的一个类。它只保留数据,而不是更多。然而,你不受限制地在任何地方使用LINQ,因为它只是一组扩展方法。不是在视图中,我想在模型类中使用它。你可以在任何类中使用它。但是在我的建议中,几乎在任何情况下,对模型类内部的数据进行任何操作都是一个糟糕的设计决策case@ILya:仅当您使用贫血模型时。没有任何东西阻止您在模型中封装特定于模型的逻辑。它是一个类而不是一个数据存储单元。您的意思是在视图中吗?因为模型是您传递给它的一个类。它只保留数据而不是更多数据。尽管如此,您并没有被限制在任何您想要的地方使用LINQ,因为它只是一组扩展方法。不是在视图中,我想在模型类中使用它。您可以在任何类中使用它。但在我看来,对模型类中的数据使用任何操作几乎在任何情况下都是一个糟糕的设计决策case@ILya:仅当您使用贫血模型时。否这会阻止您将特定于模型的逻辑封装到模型中。它是一个类,而不是一个数据存储单元。@user841852:LINQ查询在模型中与在任何其他代码中没有区别。LINQ查询的任何示例都会在模型中以及在控制器、视图、windows应用程序或其他任何地方工作……以及存储库与模型的关系如何?@ssx这里什么是IPostRepository?@user841852这是一个界面,但是你可以跳过它example@user841852:LINQ查询在模型中与在任何其他代码中没有区别。LINQ查询的任何示例都将在模型中以及控制器、视图、windows应用程序或其他任何程序中工作……以及存储库与模型的关系?@ssx什么是IPostRepository?@user841852这是一个界面,但你可以跳过它,因为你的答案更有意义。你的答案更有意义。