如何将数据库列映射到 NHibernate xml 文件?

How to map db columns to NHibernate xml file?

我也是 NHibernate 和 MVC 的新手。

我有一个模型 class,其中包含类似

的属性
public class RegisterViewModel
{

    [Required]
    [Display(Name="Full Name")]
    public string Name { get; set; }

    [Required]
    [Display(Name = "Email Id")]
    public string EailID { get; set; }

    [Required]
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 1)]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

    [DataType(DataType.Password)]
    [Display(Name = "Confirm password")]
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
    public string ConfirmPassword { get; set; }
}

我已经为这个模型创建了 xml 映射文件,如下所示。

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   auto-import="true" assembly="EventMgnt" namespace="EventMgnt.Models">
  <class name="EventMgnt.Models.RegisterViewModel" table="tblUser" dynamic-update="true" >
    <cache usage="read-write"/>
    <id name="Id" column="Id" type="int">
      <generator class="native" />
    </id>
    <property name="Name" />
    <property name="EmailID" />
    <property name="Password" />
    <property name="ConfirmPassword" />
  </class>
</hibernate-mapping>

我收到 Could not compile the mapping document 错误。现在我有几个问题,

  1. 是否需要在 Nhibernate xml 映射文件中写入模型 class 中可用的所有属性?
  2. 如果我在 确认密码 的数据库中没有 1 列怎么办?

任何帮助将不胜感激。

  1. 否不需要
  2. 您只需添加数据库列匹配属性。您可以忽略确认密码 属性 这个错误很可能与 NHibernate 映射程序集或命名空间有关