Entity framework 使用EF查询多个模式

Entity framework 使用EF查询多个模式,entity-framework,ef-code-first,entity-framework-migrations,Entity Framework,Ef Code First,Entity Framework Migrations,我想这应该很容易,但我想不出来。 我有一个使用EF查询的现有(遗留)数据库,我创建了两个POCO类,只要针对“dbo”模式发出查询,一切都很好。问题是我不能对任何其他模式发出查询,比如说“foo”。 我试图重写模型创建和指定模式,但似乎不起作用。。。 有人知道解决这个问题的方法吗? 对于这种特殊情况,我只需要查询功能(而不是插入、更新等)。 如果有任何东西只适用于查询,那么它也将非常好。 我正在使用EF5瞄准.NET4.0 任何帮助都将不胜感激。 谢谢 没关系,经过多次尝试,我终于找到了答案 p

我想这应该很容易,但我想不出来。 我有一个使用EF查询的现有(遗留)数据库,我创建了两个POCO类,只要针对“dbo”模式发出查询,一切都很好。问题是我不能对任何其他模式发出查询,比如说“foo”。 我试图重写模型创建和指定模式,但似乎不起作用。。。 有人知道解决这个问题的方法吗? 对于这种特殊情况,我只需要查询功能(而不是插入、更新等)。 如果有任何东西只适用于查询,那么它也将非常好。 我正在使用EF5瞄准.NET4.0 任何帮助都将不胜感激。
谢谢

没关系,经过多次尝试,我终于找到了答案

protected override void OnModelCreating(DbModelBuilder modelBuilder) {
//don't know why, but for some reason this doesnt work (from scott gu's blog)
//modelBuilder.Entity<Foo>().ToTable("tblFoo", "bar");                        
//but this line of code does the trick ;)
 modelBuilder.Entity<Foo>().ToTable("bar.tblFoo");
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder){
//不知道为什么,但出于某种原因,这不起作用(来自scott gu的博客)
//modelBuilder.Entity().ToTable(“tblFoo”、“bar”);
//但这一行代码起到了作用;)
modelBuilder.Entity().ToTable(“bar.tblFoo”);

}没关系,经过多次尝试,我终于找到了答案

protected override void OnModelCreating(DbModelBuilder modelBuilder) {
//don't know why, but for some reason this doesnt work (from scott gu's blog)
//modelBuilder.Entity<Foo>().ToTable("tblFoo", "bar");                        
//but this line of code does the trick ;)
 modelBuilder.Entity<Foo>().ToTable("bar.tblFoo");
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder){
//不知道为什么,但出于某种原因,这不起作用(来自scott gu的博客)
//modelBuilder.Entity().ToTable(“tblFoo”、“bar”);
//但这一行代码起到了作用;)
modelBuilder.Entity().ToTable(“bar.tblFoo”);

}

ToTable方法重载了传递模式的选项

modelBuilder.Entity<Poco>().ToTable("tabX","schemaY");
modelBuilder.Entity().ToTable(“tabX”、“schemaY”);

知道“schema.table”可以工作是很有趣的,但是由于存在重载,使用它可能更好。

ToTable方法重载了传递模式的选项

modelBuilder.Entity<Poco>().ToTable("tabX","schemaY");
modelBuilder.Entity().ToTable(“tabX”、“schemaY”);
了解“schema.table”的工作原理很有趣,但由于存在过载,使用它可能更好