NHibernate.AspNet.Identity Fluenthibernate-如何将自定义对象添加到Applic

本文关键字:对象 自定义 添加 Applic AspNet Identity Fluenthibernate- NHibernate | 更新日期: 2023-09-27 18:26:30

我对Nhibernate非常、非常陌生,我正在学习(痛苦地)。

我正在尝试将NHibernate与Asp.NETIdentity 2.0一起使用,并设置自己的商店。然而,我有问题-

虽然我理解实体之间的映射,但似乎无法创建实体之间的相关映射。这是我的东西。ApplicationUser类和设置,类似于:https://github.com/nhibernate/NHibernate.AspNet.Identity

public class ApplicationUser : IdentityUser
{
    public virtual IList<Character> Characters { get; set; }
    public ApplicationUser()
    {
        Characters = new List<Character>();
    }
}

和字符类

public class Character
{
    public virtual Guid Id { get; set; }
    public virtual ApplicationUser ApplicationUser { get; set; }
}

这是我的主要配置部分:

var configuration = Fluently.Configure()
            .Database(
                MsSqlConfiguration.MsSql2012.ConnectionString(
                    "server=localhost;database=SWDB;trusted_connection=true;"))
            .Mappings(x=>x.FluentMappings.AddFromAssemblyOf<CharacterMapping>())
            .ExposeConfiguration(cfg =>
            {
                cfg.SetProperty("current_session_context_class", "web");
                cfg.AddDeserializedMapping(
                    MappingHelper.GetIdentityMappings(myEntities), null);
                new SchemaExport(cfg).Create(false, true);
            }).BuildConfiguration();

最后是映射:

public class ApplicationUserMapping : SubclassMap<ApplicationUser>
{
    public ApplicationUserMapping()
    {
        HasMany(x => x.Characters).Inverse().Cascade.All();
    }
}

public class CharacterMapping : ClassMap<Character>
{
    public CharacterMapping()
    {
        Id(x => x.Id);
        References(x => x.ApplicationUser).Cascade.All();
    }
}

但是,每当我尝试创建和保存字符时,我都会得到:无法确定以下列的类型:SWDB.Domain.RP.character、SWDB.DDomain:NHibernate.MMapping.Column(id)

我一整天都在与之斗争——我放弃了:(感谢任何帮助…

谢谢!

NHibernate.AspNet.Identity Fluenthibernate-如何将自定义对象添加到Applic

您的Id是Identity不支持的Guid。手动指定发电机

public class CharacterMapping : ClassMap<Character>
{
    public CharacterMapping()
    {
        Id(x => x.Id).GeneratedBy.GuidComb();
        References(x => x.ApplicationUser).Cascade.All();
    }
}