我通常会创建POCO类并将它们放在Helpers命名空间下 - 它们不在我的数据库模型中。现在我想知道我是否应该将它们放在Models命名空间下。我该怎么决定?谢谢你的帮助。
答案 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
命名空间来定义包含HtmlHelper
和UrlHelper
类的扩展方法的静态类。