我有一个查询四个不同表的 LINQ to SQL DataContext。但是我需要将其中一个表移动到另一个数据库。是否可以为某些表使用一个数据库和连接字符串,而另一个表使用另一个数据库和连接字符串?
所以现在我有类似的东西:
[global::System.Data.Linq.Mapping.DatabaseAttribute(Name="DATABASE1")]
public partial class DataClassesDataContext : System.Data.Linq.DataContext
{
private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();
public DataClassesDataContext() : base(global::System.Configuration.ConfigurationManager.ConnectionStrings["DATABASE1ConnectionString"].ConnectionString, mappingSource)
{
OnCreated();
}
public DataClassesDataContext(string connection) : base(connection, mappingSource)
{
OnCreated();
}
}
所以现在处理所有四个表。我希望它能够处理前 3 个表,并在最后一个表中处理另一个表。这可能吗?
谢谢!
最佳答案
不直接;最明显的事情是将数据上下文拆分为两个单独的数据上下文类(和两个 dbml 设置)。
如果你很小心,你可以保持“原样”,只是显式地为每个数据上下文实例提供连接字符串,只是不要使用错误的位,但是:这是有风险的。特别是,保持它完好无损意味着您仍然可能有试图连接现在位于不同数据库中的表的查询,这将不起作用。
此处的数据上下文仅设计用于单个数据库。
关于c# - LINQ to SQL DataContext 中的多个数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9823674/