sql-server - nHibernate 主细节删除

标签 sql-server nhibernate

我配置了主从关系。 hbm 文件如下。当我运行一些这样的代码时

Favourite favourite = favourites.Find(f => f.Id== id);
user.Favourites.Remove(favourite);
m_UserRepository.Save(ref user);

我收到错误信息

NHibernate.Exceptions.GenericADOException:无法删除集合行:[Model.Entities.User.Favourites#249][SQL:SQL 不可用] ---> System.Data.SqlClient.SqlException:无法将值 NULL 插入列 ' UserId', 表 'BE.Favourite';列不允许空值。更新失败。

关于这意味着什么的任何建议请帮助。
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Model.Entities" schema="BE" assembly="Model" default-lazy="false">
  <class name="Model.Entities.User, Model" table="Users" >
    <id name="UserId" column="UserId" type="int" unsaved-value="0">
      <generator class="native" />
    </id>
    <property name="UserName" column="UserName" type="string" />

    <bag name="Favourites" cascade="all" lazy="true">
      <key column="UserId"/>
      <one-to-many class="Model.Entities.Favourite, Model"/>
    </bag>

  </class>
</hibernate-mapping>

最佳答案

您是否尝试过设置 inverse="true"在你的包上?

关于sql-server - nHibernate 主细节删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/388799/

相关文章:

sql-server - 如何从本地实例查询/插入 Azure SQL Server

c# - 调用错误

日期范围越小SQL查询时间越长?

mysql - Erlang模块调用mysql存储过程

nhibernate - 流利的NHibernate自动映射与鉴别器

sql-server - Azure 托管标识是否支持本地 MS SQL 数据库?

c# - NHibernate 没有 session 或 session 已关闭

c# - Linq 到 NHibernate : Sequence Contains no Elements

nhibernate - NHibernate 可以使用的只读集合属性

asp.net - NHibernate StructureMap ASP.NET webform System.OutOfMemoryException