Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么';是否创建此表?_C#_Nhibernate_Sql Server 2008 R2_Fluent Nhibernate - Fatal编程技术网

C# 为什么';是否创建此表?

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)

我正在使用NHibernate 4和Fluent NHibernate将类映射到数据库。数据库位于SQL Server 2008 Express实例中。究竟为什么使用
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的转义,使用尖括号)。