0

我首先使用 Fluent nHibernate 代码,我有 Nullable 列,然后更改为 .Not.Nullable() 但我的列仍然是 Nullable

这是我的配置

 public override void Load()
        {
            Bind<ISessionFactory>().ToMethod(x =>
             {
                 var factory = Fluently.Configure()
                     .Database(MsSqlConfiguration.MsSql2008.ConnectionString
                         (c => c.FromConnectionStringWithKey("DefaultConnection")))
                     .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Users>()
                         .Conventions.Add(PrimaryKey.Name.Is(p => "Id"), ForeignKey.EndsWith("Id"))
                         .Conventions.Setup(c => c.Add(AutoImport.Never())))
                     .ExposeConfiguration(cfg => new SchemaUpdate(cfg).Execute(true, true));

                 return factory.BuildSessionFactory();
             }).InSingletonScope();
        }
4

1 回答 1

2

AFAIK SchemaUpdate 不会触及现有列,因为它不会处理边缘情况,例如如果列已经包含空值会发生什么?

您的选择:

  • 手动添加 notnull 约束
  • 使用 SchemaExport 重新创建架构
于 2013-10-18T11:53:35.827 回答