0

私は問題を抱えており、私が間違っていることを理解できないようです。私には多くのグループがあり、グループには多くのユーザーがいて、ユーザーはグループに属している会社があります。会社にグループを追加することはできますが、ユーザーをグループに追加することはできません。

これが私のマッピングです:

  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をNotNullに設定しています。キーは、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が設定されることはありません。どんな助けでもいただければ幸いです!

ありがとう、ジョー

4

1 に答える 1

1
  • HasMany(x => x.Users)それ以外の場合はInverse()、ユーザーを追加するときにスローされます。ユーザーのみがFKを維持する必要があります
  • おそらく欠落しているsession.Flush()transaction.Commit();、リポジトリメソッドにあります
于 2012-07-31T13:14:22.370 に答える