无法在实体之间建立一对一关系

马克夫蒂

更新1:向实体类的代码添加了链接。

我有一个Vehicle实体(用于保存有关车辆的信息)和一个UploadedDocument实体(表示任何上载的文档,在这种情况下(例如,注册文件))存储在数据库中的单独表中(其他实体也可能需要存储上载的文档) 。这些之间存在一一对应的关系。

对应:

<class name="Vehicle" table="Vehicles" lazy="true">
  <id name="ID">
    <generator class="native" />
  </id>
  <property name="License" />
  <property name="ManufactureYear" />
  <property name="PurchaseYear" />
  <one-to-one name="Registration" class="UploadedDocument" />
</class>

<class name="UploadedDocument" table="UploadedDocuments" lazy="true">
  <id name="ID">
    <generator class="native" />
  </id>
  <property name="Name" />
  <property name="Data" length="2147483647"  />
  <many-to-one name="SupplierCustomer" class="SupplierCustomer" column="SupplierCustomerID" />
</class>

VehicleUploadedDocument的代码保存这些类的代码如下所示:

using (ISession sess = NHibernateHelper.OpenSession())
{
    sess.Save(uploadedDoc);
    vehicleToAdd.Registration = uploadedDoc;
    sess.Save(vehicleToAdd);
}

事情没有按我期望的那样工作:NHibernate不会UploadedDocumentVehicles表中添加ID字段,因此没有一对一的关系。

如果仅将<one-to-one>映射更改<many-to-one name="Registration" class="UploadedDocument" column="RegistrationID" />Vehicle.hbm.xml文件中的,就可以正常工作,但不需要双向映射或多对一映射。普通的,简单的一对一映射,其中表中RegistrationID出现VehiclesNHibernate是否没有提供在Vehicle之间建立一对一关系的简单方法UploadedDocument

马克夫蒂

找到正确的方法:使用<many-to-one>具有附加unique约束映射

<many-to-one name="Registration" class="UploadedDocument"
    column="RegistrationID" unique="true" />

进一步的参考:5.1.12。一对一

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQLite-Net Extension两个实体之间的一对一关系和一对多关系

来自分类Dev

休眠一对一关系

来自分类Dev

一对一关系插入

来自分类Dev

无法与Sequelize建立一对一关系

来自分类Dev

休眠一对一关系

来自分类Dev

学说–如何在两个实体之间建立一对一关系

来自分类Dev

Java类之间的一对一关系

来自分类Dev

实体框架代码优先一对一关系

来自分类Dev

插入一对一关系

来自分类Dev

实体框架代码首先在复杂实体之间建立一对一关系

来自分类Dev

模式中建立一对一关系的方法?

来自分类Dev

实体框架核心一对一关系在SQL Server中生成一对多

来自分类Dev

EF Core中的一对一关系(无法确定孩子/受抚养人之间的一对一关系)

来自分类Dev

如何删除一对一关系中的实体?

来自分类Dev

休眠一对一关系

来自分类Dev

建立一对一关系

来自分类Dev

GSON一对一关系

来自分类Dev

一对一关系与建立联系

来自分类Dev

休眠一对一关系

来自分类Dev

与实体框架一对一的建立关系

来自分类Dev

一对一关系

来自分类Dev

实现实体框架一对一关系

来自分类Dev

MYSQL一对一关系

来自分类Dev

实现一对一关系

来自分类Dev

与查询的一对一关系

来自分类Dev

sql 列之间的一对多和一对一关系

来自分类Dev

一对一关系实体框架

来自分类Dev

实体框架中的一对一关系插入

来自分类Dev

定义了 2 个模型之间的一对一关系,但似乎仍然能够建立一对多