C# 为什么';是否创建此表?
我正在使用NHibernate 4和Fluent NHibernate将类映射到数据库。数据库位于SQL Server 2008 Express实例中。究竟为什么使用C# 为什么';是否创建此表?,c#,nhibernate,sql-server-2008-r2,fluent-nhibernate,C#,Nhibernate,Sql Server 2008 R2,Fluent Nhibernate,我正在使用NHibernate 4和Fluent NHibernate将类映射到数据库。数据库位于SQL Server 2008 Express实例中。究竟为什么使用SchemaUpdate创建除此之外的所有表: public class UserMap : ClassMap<UserModel> { public UserMap() { this.Table("User"); this.Id(x => x.Id)
SchemaUpdate
创建除此之外的所有表:
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();
}
}
公共类用户映射:类映射
{
公共用户映射()
{
本表(“用户”);
this.Id(x=>x.Id)
.GeneratedBy.Native();
this.Map(x=>x.Name)
.Length(int.MaxValue)
.Not.Nullable();
}
}
刚刚发现,SchemaUpdate
在尝试创建名为“User”的表时失败
为该表使用另一个名称(例如“用户”)可以解决以下问题:
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();
}
}
公共类用户映射:类映射
{
公共用户映射()
{
本表(“用户”);
this.Id(x=>x.Id)
.GeneratedBy.Native();
this.Map(x=>x.Name)
.Length(int.MaxValue)
.Not.Nullable();
}
}
也许您可以尝试转义表名:this.table(`User`)
(db不可知转义,使用后倾`
)或此表(“[User]”)代码>(特定于SQL Server的转义,使用尖括号)。