2012-05-31 58 views
0

我正在创建一个Web应用程序,是否可以在模型中使用LINQ查询,而不是在Controller中使用它?在模型中使用LINQ查询(MVC)

感谢

+2

你的意思是?因为模型是您传递给它的类。它只是保持数据不多。尽管如此,你并不限制在任何你想要的地方使用LINQ,因为它只是一组扩展方法。 – ILya

+0

不可见,我想在模型类 – user841852

+0

中使用它,你可以在任何课堂上使用它。但在我看来,对模型类中的数据使用任何操作都是一个糟糕的设计决策,几乎在任何情况下都是如此 – ILya

回答

1

是的,你可以使用模型中的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; 
    } 
+0

你能告诉我任何代码示例吗? – user841852

+3

@ user841852:LINQ查询在模型中没有任何其他代码中的不同。 linq查询的任何例子都可以在模型,控制器或视图或windows应用程序或其他任何东西中工作... – Chris

+0

存储库与模型的关系如何? – ILya

1

我会建议你用你的LINQ查询库中的类。

然后你在你的控制器中使用你的Repository方法。

比方说我有“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(); 
     } 
} 

这是一个例子我上面提到的。