2016-03-22 29 views
0

Sınıfları veritabanına eşlemek için NHibernate 4 ve Fluent NHibernate kullanıyorum. Veritabanı bir SQL Server 2008 Express örneğinde. Neden SchemaUpdate kullanarak yeryüzündeki tüm tabloları bu bir bekliyoruz oluşturur:SchemaUpdate neden bu tabloyu oluşturmuyor?

public class UserMap : ClassMap<UserModel> 
{ 
    public UserMap() 
    { 
     this.Table("User"); 

     this.Id(x => x.Id) 
      .GeneratedBy.Native(); 

     this.Map(x => x.Name) 
      .Length(int.MaxValue) 
      .Not.Nullable(); 
    } 
} 

cevap

0

Sadece "Kullanıcı" adlı bir tablo oluşturmak çalışırken SchemaUpdate sessizce başarısız olduğunu öğrendim. Sonra tablo adı kaçan deneyebilirsiniz Belki

public class UserMap : ClassMap<UserModel> 
{ 
    public UserMap() 
    { 
     this.Table("Users"); 

     this.Id(x => x.Id) 
      .GeneratedBy.Native(); 

     this.Map(x => x.Name) 
      .Length(int.MaxValue) 
      .Not.Nullable(); 
    } 
} 
+1

: (örneğin: "Kullanıcılar") o tablo için başka bir isim kullanarak

sorunu çözer 'this.Table ("\ 'Kullanıcı \'");' (db agnostic, '\ '') ya da 'this.Table (" [User] "); (SQL Server'a özel kaçan, köşeli ayraç kullanarak). –