NHibernate访问hbm.xml字段设置

时间:2012-02-28 05:16:20

标签: nhibernate

我有一个在.NET 2中创建的现有NHibernate应用程序,它是一个WinForms应用程序,它有一个为数据类编译的单独的DLL&所有的hbm.xml文件。

我现在要做的是在表单上显示哪些字段不可为空,将边框更改为红色。

问题是我似乎找不到可以在表单上循环遍历绑定字段(我能做到的)的任何地方,并读取not-null =“false”(或true)参数。

有什么想法吗?

我对Fluent NHibernate开放,但这是一个VB.NET应用程序,我是一个流利的Nhibernate菜鸟: - )

同样开放其他方式,只要我能够很好地适应应用程序: - )

谢谢!

1 个答案:

答案 0 :(得分:2)

您不需要阅读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项目中使用它。

相关问题