NHibernate-无法编译映射文档

NHibernate-无法编译映射文档,nhibernate,Nhibernate,这是我第一次使用NHibernate,我从我的朋友那里得到了一个程序的源代码,之后程序运行良好,我尝试添加“Stock.hbm.xml”,如下所示: using System; using System.Collections.Generic; using NBooks.Core.Util; using NBooks.Data.NHibernate; using NHibernate; namespace NBooks.Core.Models { public interface IBaseM

这是我第一次使用NHibernate,我从我的朋友那里得到了一个程序的源代码,之后程序运行良好,我尝试添加“Stock.hbm.xml”,如下所示:

using System;
using System.Collections.Generic;
using NBooks.Core.Util;
using NBooks.Data.NHibernate;
using NHibernate;

namespace NBooks.Core.Models
{
public interface IBaseModel
{
    int Id { get; set; }
}

public class BaseModel<T> : IBaseModel
{
    IList<string> errors = new List<string>();
    public virtual int Id { get; set; }

    public virtual bool HasErrors {
        get { return errors.Count > 0; }
    }

    public virtual IList<string> Errors {
        get { return errors; }
    }

    public BaseModel()
    {
    }

    public virtual void Validate()
    {
        Errors.Clear();
    }

    public virtual void SaveOrUpdate()
    {
        ITransaction trans = null;
        try {
            ISession session = NHibernateHelper.OpenSession();
            trans = session.BeginTransaction();
            session.SaveOrUpdate(this);
            session.Flush();
            trans.Commit();
        } catch (Exception ex) {
            LoggingService.Error(ex.Message);
            MessageService.ShowError(ex.Message);
            trans.Rollback();
        }
    }

    public virtual void Delete()
    {
        ITransaction trans = null;
        try {
            ISession session = NHibernateHelper.OpenSession();
            trans = session.BeginTransaction();
            session.Delete(this);
            session.Flush();
            trans.Commit();
        } catch (Exception ex) {
            LoggingService.Error(ex.Message);
            MessageService.ShowError(ex.Message);
            trans.Rollback();
        }
    }

    public static T Read(int id)
    {
        return NHibernateHelper.OpenSession().Load<T>(id);
    }

    public static IList<T> FindAll()
    {
        return     
NHibernateHelper.OpenSession().CreateCriteria(typeof(T)).List<T>();
    }
}
}
`


`

与我的班级“Stock.cs”

使用系统;
使用System.Collections.Generic;
命名空间NBooks.Core.Models
{
公共类股票:基本模型
{
公共虚拟字符串Stock_name{get;set;}
公共虚拟字符串Stock_代码{get;set;}
公共虚拟整数Comp_ID{get;set;}
公共虚拟字符串注释{get;set;}
公共虚拟字符串地址{get;set;}
公共虚拟布尔不活动{get;set;}
公开股()
{
}
公开股票(字符串名称)
{
this.Stock_name=名称;
}
}
公共类StockEventArgs:EventArgs
{
公共股票{get;set;}
公共股票事件args(股票)
{
这个。股票=股票;
}
}
公共委托void StockEventHandler(股票发送者,EventArgs e);
}
基本模型是:

using System;
using System.Collections.Generic;
using NBooks.Core.Util;
using NBooks.Data.NHibernate;
using NHibernate;

namespace NBooks.Core.Models
{
public interface IBaseModel
{
    int Id { get; set; }
}

public class BaseModel<T> : IBaseModel
{
    IList<string> errors = new List<string>();
    public virtual int Id { get; set; }

    public virtual bool HasErrors {
        get { return errors.Count > 0; }
    }

    public virtual IList<string> Errors {
        get { return errors; }
    }

    public BaseModel()
    {
    }

    public virtual void Validate()
    {
        Errors.Clear();
    }

    public virtual void SaveOrUpdate()
    {
        ITransaction trans = null;
        try {
            ISession session = NHibernateHelper.OpenSession();
            trans = session.BeginTransaction();
            session.SaveOrUpdate(this);
            session.Flush();
            trans.Commit();
        } catch (Exception ex) {
            LoggingService.Error(ex.Message);
            MessageService.ShowError(ex.Message);
            trans.Rollback();
        }
    }

    public virtual void Delete()
    {
        ITransaction trans = null;
        try {
            ISession session = NHibernateHelper.OpenSession();
            trans = session.BeginTransaction();
            session.Delete(this);
            session.Flush();
            trans.Commit();
        } catch (Exception ex) {
            LoggingService.Error(ex.Message);
            MessageService.ShowError(ex.Message);
            trans.Rollback();
        }
    }

    public static T Read(int id)
    {
        return NHibernateHelper.OpenSession().Load<T>(id);
    }

    public static IList<T> FindAll()
    {
        return     
NHibernateHelper.OpenSession().CreateCriteria(typeof(T)).List<T>();
    }
}
}
使用系统;
使用System.Collections.Generic;
使用NBooks.Core.Util;
使用NBooks.Data.NHibernate;
使用NHibernate;
命名空间NBooks.Core.Models
{
公共接口IBaseModel
{
int Id{get;set;}
}
公共类基模型:IBaseModel
{
IList errors=新列表();
公共虚拟整数Id{get;set;}
公共虚拟布尔错误{
获取{返回错误。计数>0;}
}
公共虚拟IList错误{
获取{返回错误;}
}
公共BaseModel()
{
}
公共虚拟void Validate()
{
错误。清除();
}
公共虚拟void SaveOrUpdate()
{
ITransaction trans=null;
试一试{
ISession session=NHibernateHelper.OpenSession();
trans=session.BeginTransaction();
会话。保存或更新(本);
session.Flush();
trans.Commit();
}捕获(例外情况除外){
LoggingService.Error(例如消息);
MessageService.ShowError(例如Message);
trans.Rollback();
}
}
公共虚拟空间删除()
{
ITransaction trans=null;
试一试{
ISession session=NHibernateHelper.OpenSession();
trans=session.BeginTransaction();
删除(本条);
session.Flush();
trans.Commit();
}捕获(例外情况除外){
LoggingService.Error(例如消息);
MessageService.ShowError(例如Message);
trans.Rollback();
}
}
公共静态T读(int id)
{
返回NHibernateHelper.OpenSession().Load(id);
}
公共静态IList FindAll()
{
返回
NHibernateHelper.OpenSession().CreateCriteria(typeof(T)).List();
}
}
}
构建时一切正常且无错误,运行时出现错误“NHibernate-无法编译映射文档Stock.hbm.xml”。
Thanx提前

您的映射中有一个输入错误

<property name="Nots" column="Nots" />

应该是

<property name="Notes" column="Nots" />

我注意到您的XML中有一个输入错误:

<property name="Nots" column="Nots" />

尽管我不认为这是你的错误,但是name='ID'应该是name='ID'?检查内部异常。
<property name="Nots" column="Nots" />
public class StockMap(): ClassMap<Stock>
{
    public StockMap(){  
        Id(x => x.Id).Column("Stock_ID").GeneratedBy.Identity();
        Map(x => x.Comp_ID);
        Map(x => x.Address);
        Map(x => x.Notes);
    }
}