1

我已经完成使用EF和Code First构建我的博客。先使用代码更改实体框架数据库模式图

EF使用[DBO]模式针对本地SQL Express实例运行。

现在我想发布的博客,并我已经做了以下

  1. Generetade脚本的表和SQL Express的所有对象,并更改[DBO]我的[管理员]架构从我的服务器。
  2. 针对服务器运行脚本。没有问题,所有的对象都创建了一个填充很好。
  3. 我修改了Webconfig并添加了我的BlogContext连接字符串,指向服务器而不是本地sql express。
  4. 已发布的网站。

我得到的错误是:无效的对象名'dbo.Articles'。 - 文章是我的实体之一。它驻留在我的sql服务器上,[Administrator].Articles

据我可以告诉EF仍认为即时通讯使用DBO架构。虽然我已经添加了连接字符串以指向管理员用户。

如何更改EF认为应该使用的架构?

回答

3

如果您未通过数据注释或流畅API明确配置架构,EF将使用dbo架构。

[Table("MyTable", "MySchema")] 
public class MyEntity 
{ 

} 

或者

modelBuidler.Entity<MyEntity>().ToTable("MyTable", "MySchema"); 
+0

谢谢Eranga。我现在已经读过它了。 – 2012-02-19 12:55:37

0

只是为了搜索:我只是EF5 .NET4.5工作,并

[Table("MyTable", "MySchema")] 

不起作用。即使VS2012显示有一个重载需要2个参数,但在构建时会出现错误:'System.ComponentModel.DataAnnotations.Schema.TableAttribute'不包含具有2个参数的构造函数。

但代码映射工作得很好。

+0

您是否尝试过使用'[Table(“MyTable”,Schema =“MySchema”)]? – Dejan 2015-11-23 16:52:28

相关问题