我需要更新一个使用LINQ将数据导入数据库的C#应用程序。我是LINQ的新手。我试图解决的问题是DB有两个版本。它们具有相同的表名,结构相同,但有一个表(大约60个),它们的定义不同。
如果不涉及LINQ,我只需根据用户想要导入的应用程序(DB)的版本选择不同的查询,并保留应用程序的其余部分。
我的印象是LINQ适用于DB结构一成不变的情况,并且我不能有两个具有相同名称的LINQ表定义,只是简单地或轻松地在它们之间切换(或者根本就这样做)。
在这种情况下,我是否必须(至少)为每个版本的DB安装一个单独的整个Linq.DataContext?或者我误解了一些基本的东西?
答案 0 :(得分:0)
您可以使用单独的映射来实现这一点。在这种情况下,您必须手动编写映射,使其与LINQ设计器或SqlMetal为您执行的基于属性的映射相对应。我从来没有这样做过,但我认为它可能会奏效。我只是用谷歌搜索“Linq to Sql POCO mapping”并找到了这个:Achieving POCO s in Linq to SQL。此人正在运行时从xml文件加载其映射。您可以有条件地加载两个不同的映射文件中的一个。