我应该将POCO类放在Helpers或Models命名空间下吗?

时间:2010-11-28 19:56:09

标签: asp.net-mvc

我通常会创建POCO类并将它们放在Helpers命名空间下 - 它们不在我的数据库模型中。现在我想知道我是否应该将它们放在Models命名空间下。我该怎么决定?谢谢你的帮助。

3 个答案:

答案 0 :(得分:4)

一般来说,POCO指的是持久性无知的对象,通常直接代表数据层中的模型。换句话说,您可能有一个名为 tblProducts 的表格,以及一个名为产品的POCO:

public class Product
{
   public int ProductId { get; set; }
   public string ProductName { get; set; }
}

代表该表(但不依赖于它)。然后,您的ORM(Nhibernate,Entity Framework)可以将表映射到此POCO。

考虑到这一点,我认为将POCO放在一个完全独立的程序集中是一种好习惯,甚至不是与数据存储库相同的程序集。

这样,它们与其他问题(持久性,表示)保持隔离,不应该依赖于任何其他问题,因此真正持久无知

如果您想了解更多关于POCO的.NET信息,几个月前我回答了一个问题here

HTH

答案 1 :(得分:3)

如果您指的是您的域对象(例如Customer,Order),那么最好将它们放在一个单独的类库项目中,以便您可以在需要时从MVC应用程序外部重用它们。

答案 2 :(得分:0)

如果它们是视图模型或模型类,那么它们可以进入Models命名空间。您可以使用Helpers命名空间来定义包含HtmlHelperUrlHelper类的扩展方法的静态类。