Linq to Sql with dynamic database

本文关键字:dynamic database with Sql to Linq | 更新日期: 2023-09-27 17:56:39

我现在正在创建一个在运行时创建数据库的应用程序。

例如:用户"A"注册到我的服务器将获得数据库A.sdf

之后,我想使用 Linq-to-SQL 创建与新创建的数据库文件的连接。

想知道我是否会在 Visual Studio 中的设计过程中创建该连接,表会显示为数据库上下文的类吗?

例如:A.sdf有一个包含以下列Inventory表:

  • 身份证
  • 名字

因此,在 Visual Studio 中,将有一个名为 Inventory 的类,它具有 2 个属性。

请问谁能告诉我如何做到这一点?

Linq to Sql with dynamic database

如果使用实体框架,并且数据库的结构相同,则可以使用相同的域模型(EF 类)来处理所有数据库。您所需要的只是使用不同的连接字符串创建数据上下文。对于考试:

public class DataBaseContext : DbContext {
    public DataBaseContext (string connectionString="defaultConStrInConfig") : base(connectionString) {}
    /* some code to bind tables etc */
}

在您的方法中:

if (userA) conStr = "<connection string for userA>";
using (var context = new DataBaseContext(conStr)){
   /* work with userA's database */
}

互联网上有许多网站提供了有关如何从数据库生成 Linq to SQL 类的信息。

在开发过程中,您需要将其配置为使用与某种 master 数据库的连接,并根据需要设计的表。

在运行时,可以更改用于构造数据上下文的连接字符串,以便可以使用位于其他位置的数据库文件。