繁体   English   中英

流利的NHibernate双向HasMany映射留下孤立的记录

[英]Fluent NHibernate Bidirectional HasMany Mapping leaving orphaned records

我遇到问题,似乎无法弄清楚我在做什么。 我的公司有很多组,一个组有很多用户,而一个用户属于一个组。 将组添加到公司工作正常,但是我无法将用户添加到组。

这是我的映射:

  public GroupMapping()
  {
     Id(x => x.Id);
     Map(x => x.Name);

     References(x => x.Company).Column("Company_Id");

     HasMany(x => x.Users)
        .Table("User")
        .KeyColumn("Group_Id")
        .Cascade.None();
  }

  public UserMapping()
  {
     Id(x => x.Id);

     References(x => x.Group).Column("Group_Id");

     HasMany(x => x.Role)
        .KeyColumn("User_Id")
        .Cascade.All();
  }

在数据库上,我将FK设置为​​Not Null。 密钥在用户表上,称为Group_Id。 我正在使用以下方法将用户分配给该组:

  public JsonResult AssignGroup(int id, int groupId)
  {
     var user = UserRepository.GetById(id);
     var group = GroupRepository.GetById(groupId);

     user.Group = group;

     UserRepository.Save(user);

     return Json(new {});
  }

我没有收到任何错误,但是从未设置Group_Id。 任何帮助,将不胜感激!

谢谢乔

  • HasMany(x => x.Users)缺少Inverse()否则在添加用户时会抛出该异常。 只有用户应维护FK
  • 您很可能缺少session.Flush()transaction.Commit(); 在您的存储库方法中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM