FluentNhibernate多对多映射-未插入解析记录

FluentNhibernate多对多映射-未插入解析记录,nhibernate,fluent-nhibernate,nhibernate-mapping,many-to-many,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,Many To Many,我只定义了FluentNHibernate v1.0.0.637中包含的相关字段的多对多映射: // MODEL: public class User : IPersistentObject { public User() { Permissions = new HashedSet<Permission>(); } public virtual int Id { get; protected set; } public virtual

我只定义了FluentNHibernate v1.0.0.637中包含的相关字段的多对多映射:

// MODEL:
public class User : IPersistentObject {
    public User() {
        Permissions = new HashedSet<Permission>();
    }
    public virtual int Id { get; protected set; }
    public virtual ISet<Permission> Permissions { get; set; }
}

public class Permission : IPersistentObject {
    public Permission() {
    }
    public virtual int Id { get; set; }
}

// MAPPING:
public class UserMap : ClassMap<User> {
    public UserMap() {
        Id(x => x.Id);
        HasManyToMany(x => x.Permissions).Cascade.All().AsSet();
    }
}

public class PermissionMap : ClassMap<Permission> {
    public PermissionMap() {
        Id(x => x.Id).GeneratedBy.Assigned();
        Map(x => x.Description);
    }
}
我们可以清楚地看到,在User\u Permissions表中没有插入任何记录

不确定我做错了什么,需要建议

你能帮我通过这次考试吗

谢谢,
Dmitry。

正如miensol在评论中所说,我忘记提交事务。

您是否尝试过在事务中包装代码?
[Test]
public void AddingANewUserPrivilegeShouldSaveIt() {
    var p1 = new Permission {
        Id = 123,
        Description = "p1"
    };
    Session.Save(p1);

    var u = new User {
        Email = "bla@here.there"
    };
    u.Permissions.Add(p1);
    Session.Save(u);

    var userId = u.Id;

    Session.Evict(u);
    Session.Get<User>(userId).Permissions.Should().Not.Be.Empty();
}
INSERT INTO "Permission" (Description, Id) VALUES (@p0, @p1);@p0 = 'p1', @p1 = 1
INSERT INTO "User" (Email) VALUES (@p0); select last_insert_rowid();@p0 = 'bla@here.there'
SELECT user0_.Id as Id2_0_, user0_.Email as Email2_0_ FROM "User" user0_ WHERE user0_.Id=@p0;@p0 = 1
SELECT permission0_.UserId as UserId1_, permission0_.PermissionId as Permissi2_1_, permission1_.Id as Id4_0_, permission1_.Description as Descript2_4_0_ FROM User_Permissions permission0_ left outer join "Permission" permission1_ on permission0_.PermissionId=permission1_.Id WHERE permission0_.UserId=@p0;@p0 = 1