2

Я пишу библиотеку классов в качестве DataModel. DataModel способен обрабатывать всю задачу, связанную с базой данных. Я использую NHibernate и Fluent NHibernate для этого же.Создание библиотеки классов базы данных с использованием NHibernate

Теперь возникает вопрос, являются следующим:

  1. Если мы подвергаем Субъект (ПОКО Class).
  2. Хорошо ли иметь объект с внутренним защищенным свойством и свойством, отображаемым как интерфейс.
  3. Объект, созданный для сопоставления, может быть Model for WPF MVVM.
  4. Или мы должны напрямую связывать сущность?.
  5. Нет элемента управления, если библиотека возвращает список объектов как API. Поэтому каждый может добавлять или удалять в списке. Как я должен держать контроль над этим. Должен ли я создать прокси, полученный из IList, который будет отслеживать его.
  6. Правильно ли выбрасывать исключение в API или я должен вернуть null ?.
  7. Хорошо ли вести журнал в библиотеке?.

ответ

1

Должен ли мы разоблачить объект (класс POCO).

Да, создание класса-оболочки делает больше усилий.

Хорошо ли иметь объект с внутренним защищенным имуществом и свойством, отображаемым как интерфейс.

Да, сеттер и незащищенные свойства являются контролем.

Объект, созданный для сопоставления, может быть моделью для MVVM WPF.

Для примитивного типа может быть, но ссылка может быть открыта интерфейсом.

Или мы должны напрямую связывать сущность?.

Если модель создана довольно прямое использование объекта POCO. Это намного более гибко для случаев обновления. Пользователь не может изменить свойство объекта POCO, если существует операция отмены.

Нет контроля, если Библиотека возвращает список объектов как API. Поэтому каждый может добавлять или удалять в списке. Как я должен держать контроль над этим. Должен ли я создать прокси, полученный из IList, который будет отслеживать его.

IEnumerable используется для экспонирования коллекции по интерфейсу.

Правильно ли выбрасывать исключение, возникающее в API, или я должен вернуть null ?.

Исключение намного лучше, чтобы узнать об ошибке пользователя. но оберните исключение в читаемом пользователем, а скорее возвратите исключение NHibernate.

Это хорошо каротаж держать в библиотеке

Logging очень хорошая возможность узнать о проблеме.

+0

Спасибо jugal ..... – Deepak

1

Должен ли мы разоблачить объект (класс POCO).

да, в противном случае, Что использование сущностей, когда никто не использует

ли хорошо иметь Entity с внутренней защищенной собственностью и собственностью подвергаются в качестве интерфейса.

Всё зависит! внутренние защищенные свойства не представляют проблемы при использовании ORM, но я предпочитаю сокращать внутренние вещи до минимума, потому что мне нравятся объекты, поддерживающие их собственное состояние. интерфейсы являются точными

Объект, созданный для сопоставления, может быть моделью для WPF MVVM.

конечно. Не нужно дублировать их в другой раз. Это то, что неустойчивость существует для

Или мы должны напрямую связывать сущность?

Больше, чем нет, требования к пользовательскому интерфейсу сильно отличаются от настойчивости/businessrules, поэтому будут созданы специализированные ViewModels для UseCases/Views. Однако простое Dataholders как Order class брошенное в списки может быть связанно непосредственно (например, с помощью DatabindingFactory, чтобы сделать их реализовать INPC)

Там нет контроля, если библиотека возвращает список лица в качестве возврата API. Поэтому каждый может добавлять или удалять в списке. Как я должен держать контроль над этим. Должен ли я создать прокси, полученный из IList, который будет отслеживать его.

Списки только в контейнере с памятью. Пользователь все равно должен пройти через API для сохранения/обновления.

Правильно ли бросить исключение происходит в API или я должен возвращать нуль

, если будут возвращены коллекции, то пустые коллекции гораздо лучше, чем нуль.

Исключения, однако, должны пузыриться, предпочтительно завернутые в собственные ручные исключения. Внесите NHibernate.Exceptions.ISQLExceptionConverter (например, как NHibernate.Test.ExceptionsTest.MSSQLExceptionConverterExample) и сконфигурируйте его, например. config.DataBaseIntegration(db => db.ExceptionConverter<MyExceptionConverter>())

Это хорошо каротаж держать в библиотеке

Absolutly. Ведение журнала позволяет отлаживать развернутые приложения. (Свободно). NHibernate уже имеет много логов, встроенных в его использование, если это возможно.

+0

Спасибо Firo, нужна помощь при обработке исключений ???? Должен ли я делать исключение напрямую или возвращать пустую коллекцию. – Deepak

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