Code First中带有点的表名

时间:2012-03-02 08:07:13

标签: c# entity-framework ef-code-first

我认为在我的一些表格中添加区域名称是个好主意:

MyNewSubProject.Table1
MyNewSubProject.Table2

不幸的是,当我要使用模型构建器将这些表与Entity Framework Code First映射时:

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

抛出异常:

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

表名是正确的。我试图添加架构,但没有运气。如果我删除点,一切都很顺利。

任何使用点的方式?

谢谢;)

2 个答案:

答案 0 :(得分:3)

尝试以下

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

这会将架构更改为MyNewSubProject

答案 1 :(得分:2)

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

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

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

<强>更新

显然你可以单独设置架构:

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