Где поставить частичные классы (linq2sql) - PullRequest
0 голосов
/ 07 октября 2011

Я использую 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 Ответ

1 голос
/ 07 октября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...