2011-10-06 2 views
0

Im используя linq2sql и у меня есть файл DBDataClasses.dbml, который содержит все сопоставленные таблицы. В том же пространстве имен У меня есть частичные классы, например .:Где положить частичные классы (linq2sql)

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 
} 

но его не очень хороший идеал.

С наилучшими пожеланиями

// EDIT:

Я нашел решение своей preatty простой:

в DBDataAclasses.designer.cs просто положить модель в другое пространство имен, например. Model.Products

namespace Models.Products 
{ 


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

Предупреждение! переместить это пространство имен из корневого пространства имен (перейти к началу файла и вы увидите главное пространство имен)

, а затем дать те же пространство имен для нового частичного класса

ответ

1

Можно, конечно, положить их в подкаталогах если вы сохраните пространство имен одинаково, но я не думаю, что это то, что вы собираетесь делать.

Я думаю, что задать вопрос, если у вас слишком много моделей/таблиц в вашем DBML? Вы могли бы разделить их на несколько контекстов данных в разных пространствах имен и получить организацию таким образом. Это лучше, если вы можете сохранить небольшие контексты данных и сосредоточиться на определенной логической области, например, одном DBML для таблиц продуктов, втором DBML для клиентов и т. Д.

Смежные вопросы