NHibernate未检测到架构更改:如何更新?

问题描述

一个ASP.Net Core 3项目中,我使用sqlServer连接到NHibernate DB,这是我的配置:

var mapper = new modelmapper();

mapper.AddMappings(typeof(UserMap).Assembly.ExportedTypes);
var domainMapping = mapper.CompileMappingForAllExplicitlyAddedEntities();

var configuration = new Configuration();
    
configuration.DataBaseIntegration(c =>
{
     c.Dialect<Mssql2012Dialect>();
     c.Driver<sql2008ClientDriver>();
     c.ConnectionString = connectionString;
     c.KeywordsAutoImport = Hbm2DDLKeyWords.AutoQuote;
     c.SchemaAction = SchemaAutoAction.Update;
     c.LogFormattedsql = true;
     c.LogsqlInConsole = true;
});

configuration.AddMapping(domainMapping);

var sessionFactory = configuration.BuildSessionFactory();
using (var session = sessionFactory.OpenSession())
{
}

这里是entity

public class User
{

     public virtual Guid Id { get; set; }

     public virtual string Name { get; set; }

     public virtual string Age { get; set; }
}

它是mapping

public class UserMap : ClassMapping<User>
{
    public UserMap()
    {
        Id(u => u.Id,u =>
        {
            u.Generator(Generators.Guid);
            u.Type(NHibernateUtil.Guid);
            u.Column("Id");
            u.UnsavedValue(Guid.Empty);
        });

        Property(u => u.Name,u =>
        {
            u.Type(NHibernateUtil.String);
            u.Column("Name");
            u.NotNullable(true);
        });

        Property(u => u.Age,u =>
        {
            u.Type(NHibernateUtil.String);
            u.Column("Age");
            u.NotNullable(true);
        });

        Table("Users");
    }
}

我成功生成数据库,而我的问题不是:通过更改实体及其映射, NHibernate似乎没有检测到或应用它。例如,如果我删除Age属性及其映射,或者通过运行项目使Name的NotNullable变为NotNullable(false);,则在数据库中没有任何更新。我想念什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)