Linq to sql LINQ到SQL-两个表,相同的名称?还是备用数据库定义?

Linq to sql LINQ到SQL-两个表,相同的名称?还是备用数据库定义?,linq-to-sql,Linq To Sql,我需要更新一个使用LINQ将数据导入数据库的C应用程序。我是LINQ的新手。我试图解决的问题是DB有两个版本。它们具有相同的表名,并且90%的结构相同,但在大约60个表中有一个表具有不同的定义 如果不涉及LINQ,我只需根据用户希望导入的应用程序数据库的版本选择不同的查询,并保持应用程序的其余部分不变 我的印象是,LINQ适用于DB结构一成不变的情况,我不能有两个具有相同名称的LINQ表定义,也不能简单或轻松地在它们之间切换或根本不切换 在这种情况下,对于每个版本的DB,我必须至少有一个单独的完

我需要更新一个使用LINQ将数据导入数据库的C应用程序。我是LINQ的新手。我试图解决的问题是DB有两个版本。它们具有相同的表名,并且90%的结构相同,但在大约60个表中有一个表具有不同的定义

如果不涉及LINQ,我只需根据用户希望导入的应用程序数据库的版本选择不同的查询,并保持应用程序的其余部分不变

我的印象是,LINQ适用于DB结构一成不变的情况,我不能有两个具有相同名称的LINQ表定义,也不能简单或轻松地在它们之间切换或根本不切换


在这种情况下,对于每个版本的DB,我必须至少有一个单独的完整Linq.DataContext吗?还是我误解了一些基本的东西?

您可以使用单独的映射实现这一点。在这种情况下,您必须按照LINQ设计器或SqlMetal为您所做的基于属性的映射来手工编写映射。我从来没做过,但我想它可能有用。我刚刚在谷歌上搜索了Linq到Sql POCO的映射,发现了以下内容:。此人正在运行时从xml文件加载映射。您可以有条件地加载两个不同映射文件中的一个。

您可以使用单独的映射实现这一点。在这种情况下,您必须按照LINQ设计器或SqlMetal为您所做的基于属性的映射来手工编写映射。我从来没做过,但我想它可能有用。我刚刚在谷歌上搜索了Linq到Sql POCO的映射,发现了以下内容:。此人正在运行时从xml文件加载映射。您可以有条件地加载两个不同映射文件中的一个。

这看起来很有希望,但1它仍然基本上复制了整个数据库结构,2它将数据库结构暴露在一个人类可读/混乱的文本文件中,3最重要的是,显然我仍然需要定义datacontext和结构,然后这些结构会发生冲突。我考虑过使用可在不同的预定义数据上下文之间切换的替代数据上下文,但这似乎不是一个好办法。我刚刚将这个应用程序重新编译为新DB结构的单独版本。不优雅,但也不会成为这些特定用户的特别负担。完成了。这看起来很有希望,但1它仍然基本上复制了整个数据库结构,2它在一个可读/混乱的文本文件中公开了数据库结构,3最重要的是,显然我仍然需要定义datacontext和结构,然后这些会发生冲突。我考虑过使用可在不同的预定义数据上下文之间切换的替代数据上下文,但这似乎不是一个好办法。我刚刚将这个应用程序重新编译为新DB结构的单独版本。不优雅,但也不会成为这些特定用户的特别负担。一切都结束了。