问题描述
在一个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 (将#修改为@)