哪里放了部分类(linq2sql)

时间:2011-10-06 21:03:28

标签: asp.net-mvc linq-to-sql

我使用linq2sql,我有一个文件DBDataClasses.dbml,它包含所有映射表。 在同一个命名空间中,我有部分类,例如:

public partial Product
{
// added some logic here
}

很好,但有一个小问题。我的目录有大约20个文件(部分类)。 它看起来很乱:

-Model
--Product.cs
--ProductInfo.cs
--ProductOrder.cs
and so on

我希望以逻辑形式将它们隔离开来:

-Model
**--Products** //directory / namespace
---Product.cs
---ProductInfo.cs
---ProductOrder.cs

实现这一目标的任何想法?我试图使用继承:

namespace Model.Produts

class Product : Model.Product
{
// logic
}

但它不是一个好的想法。

祝你好运

//编辑:

我找到了一个简单的解决方案:

DBDataAclasses.designer.cs中的

只是将模型放到另一个命名空间,例如。 Model.Products

namespace Models.Products
{


 [Table(Name="dbo.Products")]
    public partial class Product : INotifyPropertyChanging, INotifyPropertyChanged
    {
    //...
    }
}

警告!将此名称空间移出根命名空间(移动到文件顶部,您将看到主命名空间)

然后将相同的命名空间赋予新的分部类

1 个答案:

答案 0 :(得分:1)

如果你保持命名空间不变,你当然可以将它们放在子目录中,但我认为这不是你想要的。

我认为问自己的问题是你的DBML中是否有太多的模型/表格?您可以将它们拆分为不同命名空间中的多个数据上下文,并以此方式进行组织。如果您可以保持较小的数据上下文并专注于特定的逻辑区域,例如产品表的一个DBML,客户的第二个DBML等,那就更好了。