【问题标题】:NHibernate Could not determine type for [namespace,assembly] for columns: NHibernate.Mapping.Column(column)NHibernate 无法确定 [namespace,assembly] 列的类型:NHibernate.Mapping.Column(column)
【发布时间】:2012-06-28 17:32:20
【问题描述】:

我对这种情况感到困惑。拥有这两个类:

public class Payment {
    public Payment() { }
    public  string Trn { get; set; }
    public  TxType TxTypeId { get; set; }
    public  string TxCode { get; set; }        
    public  System.Nullable<decimal> Amount { get; set; }
    public  System.Nullable<System.DateTime> DateStamp { get; set; } }


public PaymentAudit() { }
    public  System.DateTime DateStamp { get; set; }
    public  Payment Trn { get; set; }
    public  PaymentSaga PaymentStateId { get; set; }
    public  ProcessState ProcessState { get; set; }
    public  PublishState PublishState { get; set; }
    public  System.Nullable<short> ChgCount { get; set; }
    public  string UserName { get; set; }

映射是:

  <class name="Payment" table="Payment" lazy="false" >
    <id name="Trn">
      <generator class="identity" />
    </id>
    <many-to-one insert="false" update="false" lazy="false" name="TxTypeId">
      <column name="TxTypeId" sql-type="varchar" not-null="false" />
    </many-to-one>
    <property name="TxTypeId">
      <column name="TxTypeId" sql-type="varchar" not-null="false" />
    </property>
    <many-to-one insert="false" update="false" lazy="false" name="TxCode">
      <column name="TxCode" sql-type="varchar" not-null="false" />
    </many-to-one>
    <property name="TxCode">
      <column name="TxCode" sql-type="varchar" not-null="false" />
    </property>
    <property name="Amount">
      <column name="Amount" sql-type="decimal" not-null="false" />
    </property>
    <property name="DateStamp">
      <column name="DateStamp" sql-type="datetime" not-null="false" />
    </property>   
    <bag name="PaymentAudits" inverse="true" cascade="none">
      <key column="Trn" />
      <one-to-many class="PaymentAudit" not-found="ignore" />
    </bag>  
  </class>


  <class name="PaymentAudit" table="PaymentAudit" >
    <composite-id>
      <key-many-to-one name="PaymentStateId"  column="PaymentStateId" />
      <key-property name="DateStamp" column="DateStamp" />
      <key-many-to-one name="ProcessState" column="ProcessState" />
    </composite-id>
    <property name="PublishState">
      <column name="PublishState" sql-type="varchar" not-null="false" />
    </property>
    <many-to-one  name="Trn">
      <column name="Trn" sql-type="varchar" not-null="false" />
    </many-to-one>
    <property name="ChgCount">
      <column name="ChgCount" sql-type="smallint" not-null="false" />
    </property>
    <property name="UserName">
      <column name="UserName" sql-type="nvarchar" not-null="false" />
    </property>
    <many-to-one  name="PublishState">
      <column name="PublishState" sql-type="varchar" not-null="false" />
    </many-to-one> 
  </class>

桌子,

付款:
Trn PK
TxTypeId FK
TxCode FK
金额
日期戳

支付审计:
PaymentStateId PK
日期戳PK
进程状态 PK
PublishState FK
Trn FK
更改计数
用户名

我得到了这个错误: 无法确定类型:MyProject.NHibernate.Payment.Model.Payment.Payment、MyProject.NHibernate.Payment.Model、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null,对于列:NHibernate .Mapping.Column(Trn)

有什么想法吗? 谢谢。

【问题讨论】:

    标签: nhibernate mapping


    【解决方案1】:

    Trn 是主键,是一个字符串并且被映射为身份?标识是一个整数,所以属性应该是 int。

    【讨论】:

      猜你喜欢
      • 2016-04-18
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      • 2016-08-28
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      相关资源
      最近更新 更多