C#将Table 添加到现有的DataContext实例中

是否有可能将Table动态添加到LinqToSQL中的现有DataContext Insance?

这是我的情况:我有几个使用[Test]属性声明为Table的分类,我想允许用户在运行时创建相应的SQL Server表。 据我所知,如果我inheritanceDataContext类,我可以添加成员表客户; 在类中,它将在后端数据库中自动创建这样的表。 但是,问题是我是否可以在运行时将Table添加到DataContext类,这有助于我创建对应于T的对应的SQL Server表。

我不认为这是可能的。 Linq2Sql从您的属性中读取元信息并将它们存储在缓存中 – 适用于您的上下文的所有实例。

您唯一的机会是在内存中生成这些类,然后将它们发送到新的 AppDomain中。 听起来很难,但事实并非如此。 但是你想如何访问这些类? reflection?

你可以调用GetTable (); 在DataContext上。 它将在那时读取T上的属性。

绝对可以将在运行时生成的表添加到dbml。 如果在文本编辑器中打开dbml文件,则可以看到dbml包含列定义。 在运行时,您可以使用新表字段动态生成此文件,并将此dbml添加到.csproj项目文件中。 这将自动生成设计器类。