同一类的多对一hhibernate映射

时间:2018-07-04 16:49:31

标签: c# nhibernate nhibernate-mapping

我有一个像下面这样的类和映射文件。

ClassA 
{
  public virtual Guid Id {get;set;}
  public virtual string Name {get;set;}
  public virtual ClassA ObjectA{get;set;}
}

<hibernating-mapping xmlns="urn:nhibernate-mapping2.2">
<class name="ClassA" table="TableA">
<id name="Id" column="Id"/>
<property name="Name" column="Name" />
<many-to-one name="ObjectA" column="ObjectAId"/>
</class
</hibernate-mapping>

表结构如下

    TableA
------------------------
    Id uniqueidentifier not null (Primary Key)
    Name nvarchar(100) not null
    ObjectAId uniqueidentifier null (Foreign Key referring to the Id above)

我试图在此数据库中插入值时,我的hbm文件中的多对一映射不起作用。生成的作为事务一部分的插入脚本可以插入具有适当值的(Id,Name),但在此插入脚本之后,将生成更新脚本,如下所示

Update TableA set Id = 'updatevalue' where Id = 'somevalue'.
instead the script should be 
Update TableA set ObjectAId = 'updatevalue' where Id = 'somevalue'

这导致主键冲突异常,因为Id字段已经具有“ updatedValue”。

此外,基础对象已正确创建。

0 个答案:

没有答案