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 は、極端なケースを処理しないため、既存の列には触れません。たとえば、列に既に null 値が含まれている場合はどうなりますか?

オプション:

  • notnull 制約を手動で追加する
  • SchemaExport を使用してスキーマを再作成します
于 2013-10-18T11:53:35.827 に答える