2013-09-23 37 views
0

我真的,我已經空列,則改爲.Not.Nullable() 但我列仍然是可空功能NHibernate SchemaUpdate工具不能正常工作

這裏是我的配置

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(); 
     } 
+0

架構'SchemaUpdate'靜靜地失敗,可以請你的日誌附加到你的問題? 或者在'.Ex​​ceptions'中尋找可能有的東西... – MichaC

回答

2

AFAIK SchemaUpdate不會觸及現有的列,因爲它不會處理邊緣情況,例如如果該列已包含空值,會發生什麼情況?

您的選擇:

  • 添加NOTNULL約束手動
  • 重新使用的SchemaExport
+0

感謝你的理解。很長時間以來我一直在摸索着解決這個問題。如果它發表評論說它需要手動完成或立即炸燬,這將會非常有幫助。 –