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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...