c# - LINQ to SQL DataContext 中的多个数据库连接

标签 c# linq linq-to-sql

我有一个查询四个不同表的 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/

相关文章:

c# - 在 Xamarin Forms 中将 Android API 目标级别从 11 升级到 12

c# - 在 C# 中导入和导出 RSA key

c# - IoC、工厂和构造函数参数

c# - 我可以更好地重写此 LINQ to XML 吗?

c# - 锯齿状到多维数组

c# - LINQ Where(Array.Contains) 中的速度改进

c# - 如何定义 Nullable EntitySet<>?

linq-to-sql - 为什么我的 DataContext 不使用 SQL Server Compact Edition 4,而不是尝试使用 3.5?

c# - 在轮询数据时保持子进程打开?

c# - Linq-to-sql 查询中的动态类型