C# Nhibernate插入错误(GenericADOException)

C# Nhibernate插入错误(GenericADOException),c#,asp.net-mvc,nhibernate,model-view-controller,C#,Asp.net Mvc,Nhibernate,Model View Controller,我是NHibernate的新手,所以我不确定自己做错了什么。我目前收到以下消息: 无法插入: [NhibernateTest.Domain.Order#5ed0d146-644b-44ff-a080-f8cf3048158e][SQL: 插入订单(订单名称、发货地址、发货日期、订单ID) 数值(?,,,?)] 我正在尝试对我的数据库进行基本的插入,它只有一个表 我的域类: public class Order { public virtual Guid OrderID { get

我是NHibernate的新手,所以我不确定自己做错了什么。我目前收到以下消息:

无法插入: [NhibernateTest.Domain.Order#5ed0d146-644b-44ff-a080-f8cf3048158e][SQL: 插入订单(订单名称、发货地址、发货日期、订单ID) 数值(?,,,?)]

我正在尝试对我的数据库进行基本的插入,它只有一个表

我的域类:

    public class Order
{
    public virtual Guid OrderID { get; set; }
    public virtual string Name { get; set; }
    public virtual string ShipAddress { get; set; }
    public virtual string ShipDate { get; set; }

    public Order()
    {

    }

    public Order(string name, string shipAddress, string shipDate)
    {
        Name = name;
        ShipAddress = shipAddress;
        ShipDate = shipDate;
    }
}
和我的映射:

<?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NhibernateTest" namespace="NhibernateTest.Domain">
    <class name="Order" table="Order" lazy="true">
        <id name="OrderID" column="OrderID">
            <generator class="guid" />
        </id>
        <property name="Name" column="OrderName" type="string" />
        <property name="ShipAddress" column="ShippingAddress" type="string" />
        <property name="ShipDate" column="ShippingDate" type="string" />
  </class>
</hibernate-mapping>
下面是我的AddMethod和loadCfg函数:

        [HttpPost]
    public ActionResult AddOrder(FormCollection form)
    {
        LoadNHibernateCfg();

        OrderRepository repo = new OrderRepository();

        var order = new Order { Name = form[0], ShipAddress = form[1], ShipDate = form[2] };
        //order.Name = form[0];
        //order.ShipAddress = form[1];
        //order.ShipDate = form[2];

        repo.Add(order);

        return Index();
    }

    public static void LoadNHibernateCfg()
    {
        var cfg = new Configuration();
        cfg.Configure();
        cfg.AddAssembly(typeof (Order).Assembly);
        new SchemaExport(cfg).Execute(true, false, true);
    }
我知道Order对象在传递给.Add函数时具有该信息。所以我想这一定和我的映射有关吧


谢谢

订单
是保留关键字。例如,在查询材料时,使用的是
orderby
。以下是所有保留字的列表:

只需更改表名和映射即可解决此问题。例如,您可以将表命名为“订单”:

<class name="Order" table="Orders" lazy="true">

我得到了如下错误:无法插入:[RegEmails.Model.RegInfo][SQL:insert-INTO-reg\u-info(消息散列、IS\u-INTERNAL、产品、服务器、版本、模块、桥接许可证、桥接许可证到期、后台许可证、后台许可证到期、注释、创建日期)值(?,,,,,,,,,?)]

我有点像


InnerException:“字段列表”中的未知列“消息\u哈希”

我通过移除来解决这个问题



您的会话/事务在哪里声明?在哪里提交?我刚刚添加了一段codeNHibernate代码,它可以很好地处理错误。您能检查最内部的
InnerException
并将其发布到这里吗?InnerException是:{“解析查询时出错。[令牌行号=1,令牌行偏移量=13,令牌顺序为错误]”}System.Exception{System.Data.SqlServerCe.SqlCeException}就这么简单!谢谢:)
<class name="Order" table="Orders" lazy="true">
<id name="info_id" column="INFO_ID">
  <generator class="identity" />
</id>
<property name="MessageHash" column="MESSAGE_HASH" length="512" />
<property name="IsInternal" column="IS_INTERNAL" />
<property name="Product" column="PRODUCT" />
<property name="Server" column="SERVER" />
<property name="Version" column="VERSION" />
<property name="Module" column="MODULE" />
<property name="BridgeLicence" column="BRIDGE_LICENCE" />
<property name="BridgeLicenceExpiry" column="BRIDGE_LICENCE_EXPIRY" />
<property name="BackofficeLicence" column="BACK_OFFICE_LICENCE" />
<property name="BackofficeLicenceExpiry" column="BACK_OFFICE_LICENCE_EXPIRY" />
<property name="Comment" column="COMMENT" />
<property name="CreateDate" column="CREATE_DATE" />
<id name="info_id" column="INFO_ID">
  <generator class="identity" />
</id>
<property name="MessageHash"  length="512" />
<property name="IsInternal"  />
<property name="Product" />
<property name="Server"  />
<property name="Version" />
<property name="Module"  />
<property name="BridgeLicence"  />
<property name="BridgeLicenceExpiry" />
<property name="BackofficeLicence" />
<property name="BackofficeLicenceExpiry"  />
<property name="Comment" />
<property name="CreateDate"  />