【问题标题】:Where put partial classes (linq2sql)在哪里放置部分类(linq2sql)
【发布时间】:2011-10-06 21:03:27
【问题描述】:

我正在使用 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 中,只需将模型放入另一个命名空间,例如。型号.产品

namespace Models.Products
{


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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-06-11
      • 1970-01-01
      • 1970-01-01
      • 2021-04-09
      • 2012-02-23
      • 2017-07-18
      • 2016-12-16
      • 2018-03-29
      • 2011-08-02
      相关资源
      最近更新 更多