Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Entity framework 使用带有2个连接字符串的EF4.1代码优先DbContext_Entity Framework_Ef Code First_Entity Framework 4.1 - Fatal编程技术网

Entity framework 使用带有2个连接字符串的EF4.1代码优先DbContext

Entity framework 使用带有2个连接字符串的EF4.1代码优先DbContext,entity-framework,ef-code-first,entity-framework-4.1,Entity Framework,Ef Code First,Entity Framework 4.1,是否可以使用一个DbContext和两个连接字符串 这就是我所拥有的: // this is from Db1 public class Log { public virtual Court Court {get;set;} public Guid CourtId {get;set;} public DateTime Date{get;set;} } // this is from Db2 (different connection string) public class

是否可以使用一个DbContext和两个连接字符串

这就是我所拥有的:

// this is from Db1
public class Log
{
   public virtual Court Court {get;set;}
   public Guid CourtId {get;set;}
   public DateTime Date{get;set;}
}

// this is from Db2 (different connection string)
public class Court
{
   public Guid Id {get;set;}
   public string Name {get;set;}
}

这可行吗?

我不这么认为。不可能,何塞。这根本没有道理

我不这么认为。不可能,何塞。这根本没有道理

DbContext类只支持每个上下文一个连接。允许单个DbContext使用多个数据库的问题之一是查询生成。在您的示例中,考虑到法庭实体位于不同的数据库中,什么样的查询允许我列出所有日志?

DbContext类只支持每个上下文一个连接。允许单个DbContext使用多个数据库的问题之一是查询生成。在您的示例中,考虑到法庭实体位于不同的数据库中,什么样的查询允许我列出所有日志?

如果您希望有两个到不同数据库(包含不同的表)的连接字符串,则必须有两个包含各自映射的不同上下文。这对于ObjectContext API和DbContext API都是如此——这是设计上的。唯一受支持的方案是在同一类型的数据库服务器(数据库提供程序)上有两个连接字符串和两个完全相同的数据库。在这种情况下,可以在实例化连接字符串时将其传递给上下文的构造函数。即使在这种情况下,您也不能让一个上下文实例处理两个数据库连接。

如果您希望有两个到不同数据库(包含不同表)的连接字符串,则必须有两个包含各自映射的不同上下文。这对于ObjectContext API和DbContext API都是如此——这是设计上的。唯一受支持的方案是在同一类型的数据库服务器(数据库提供程序)上有两个连接字符串和两个完全相同的数据库。在这种情况下,可以在实例化连接字符串时将其传递给上下文的构造函数。即使在这种情况下,您也不能让一个上下文实例处理两个数据库连接。

对于日志之类的东西,选择(o=>new{o.Court.Name,o.Date})第一个数据库中的一个查询请求日志,第二个数据库中的一个查询请求法院,然后它们在内存中通过CourtId连接(这就是我想象的)嗯,对于日志之类的东西,选择(o=>new{o.Court.Name,o.Date})第一个数据库中的一个查询请求日志,第二个数据库中的一个查询请求法院,然后它们在内存中通过CourtId连接(这就是我想象的)