CodeFirst中带点的表名

本文关键字:CodeFirst | 更新日期: 2023-09-27 18:26:37

我认为在我的一些表前面加上区域名称是个好主意:

MyNewSubProject.Table1
MyNewSubProject.Table2

不幸的是,当我要用实体框架代码首先用模型构建器映射这些表时:

modelBuilder.Entity<Entity>().ToTable("MyNewSubProject.Table1");

抛出异常:

(System.Data.Entity.Infraestructure.DbUpdateException)
{"Invalid object name 'MyNewSubProject.Table1'."}

表名正确。我试过添加模式,但没有成功。如果我去掉这个点,一切都会很好。

有什么办法用这个点吗?

谢谢;)

CodeFirst中带点的表名

显然DDL命令没有正确地包装对象标识符。

尝试将表名称包装在[MyNewSubProject.Table1]中。

这是一个已知的问题,我认为现在已经解决了:
http://social.msdn.microsoft.com/Forums/en/adodotnetentityframework/thread/9c5642ad-3e4e-496f-9721-059071d653e3

更新

显然,你可以像这样单独设置模式:

modelBuilder.Entity<Entity>().ToTable("Table1", "MyNewSubProject");

尝试以下

modelBuilder.Entity<Entity>().ToTable("Table1","MyNewSubProject");

这将把模式更改为MyNewSubProject