NHibernate доступ к настройкам поля hbm.xml - PullRequest
1 голос
/ 28 февраля 2012

У меня есть существующее приложение NHibernate, созданное в .NET 2, это приложение WinForms, в котором есть отдельная DLL-библиотека, скомпилированная для классов данных и всех файлов hbm.xml.

Что я хочу сделатьтеперь в форме показано, какие поля не могут быть обнуляемыми, изменив границу на красныйформы и прочитайте параметр not-null = "false" (или true).

Есть мысли?

Я открыт для Fluent NHibernate, однако это приложение VB.NET,и я беглый Noobernate Noob: -)

Также открыт для других способов сделать это, если я могу сделать их вписаться в приложение достаточно хорошо: -)

Спасибо!

1 Ответ

2 голосов
/ 28 февраля 2012

Вам не нужно читать каталог файлов hbm.XML, так как SessionFactory содержит MetaData относительно всех отображаемых объектов.Один из способов найти все метаданные для сущности заключается в следующем;

После создания SessionFactory: -

var metaData = SessionFactory.GetClassMetadata(typeof(Model.Entities.Client));
for (int i = 0; i < metaData.PropertyNames.Length -1; i++)
{
    System.Diagnostics.Debug.Print(metaData.PropertyNames[i]);
    System.Diagnostics.Debug.Print(metaData.PropertyNullability[i].ToString());
}

В моем случае я получаю следующее: -

Name
False
Address1
False
Address2
True
...
Postcode
True

Помните, что FALSE означает NOT-NULL, то естьсвойство ожидает запись

Другой способ - добавить DataAnnotations к свойствам вашей модели.

[Required(ErrorMessage = "You must supply a postcode")]
public virtual string Postcode { get; set; }

В Интернете есть хорошие статьи, которые покажут вам, как использовать это в проекте winforms.

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