Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
C# 根据当前登录的用户使用LINQ处理不同的数据库?_C#_Asp.net Mvc_Database_Linq_Linq To Sql - Fatal编程技术网

C# 根据当前登录的用户使用LINQ处理不同的数据库?

C# 根据当前登录的用户使用LINQ处理不同的数据库?,c#,asp.net-mvc,database,linq,linq-to-sql,C#,Asp.net Mvc,Database,Linq,Linq To Sql,我的任务是创建一个网站,允许我们的各种大型客户登录我们的网站,点击我们的各种页面,查看基于其销售额的分析数据 有人知道基于用户处理多个数据库的最佳方法吗?假设我们有3个大客户,设计决策已经做出,每个大客户都有自己的数据库 如果clientA的用户登录到我们的系统,他们应该会看到他们公司的分析,并且模型应该从clientA的数据上下文中下拉。同样,如果有人登录并且与数据库中的clientB关联,那么他们需要从该数据上下文中提取数据 如果可以,我希望使用LINQ编写一个数据访问层类,并在用户登录时以

我的任务是创建一个网站,允许我们的各种大型客户登录我们的网站,点击我们的各种页面,查看基于其销售额的分析数据

有人知道基于用户处理多个数据库的最佳方法吗?假设我们有3个大客户,设计决策已经做出,每个大客户都有自己的数据库

如果clientA的用户登录到我们的系统,他们应该会看到他们公司的分析,并且模型应该从clientA的数据上下文中下拉。同样,如果有人登录并且与数据库中的clientB关联,那么他们需要从该数据上下文中提取数据


如果可以,我希望使用LINQ编写一个数据访问层类,并在用户登录时以某种方式将关联的DataContext传递给该用户。有人能想出一种合适或干净的方法来实现这一点吗?

如果模式对于所有数据库都是相同的,那么它就非常简单。datacontext有一个重载,它接受一个连接字符串。只需将各种连接字符串存储在某个集中的位置(数据库、XML、资源等),然后使用该连接字符串创建一个datacontext,无论连接的是谁,都可以使用该连接字符串。

所有数据库的模式是否相同?@BFree,就我将执行的查询而言,它们将是相同的。它们最终可能会相差两列,但与我将要运行的LINQ查询无关。@TankMan,您所做的就是所谓的数据库切分。我的问题是如何处理切换datacontext或根据特定用户使用不同的datacontext。我同意BFree。你的轴心点将是连接字符串。@TankMan:都在连接字符串中。如果检测到其他用户已连接,请获取他们的连接字符串,然后使用该连接字符串新建DataContext。