我需要将数据从一个数据库传输到另一个数据库。目标数据库包含的数据量比源数据库小得多,并且每个表只是源表列的子集。我刚刚创建了目标DBML,我正确地得到了一个编译错误,因为L2S数据类型(在目标DBML中)与源DBML中的L2S数据类型相同。
有没有办法在数据上下文之间共享这些类型?如果不是,有没有办法将源类型转换为目标类型,这样我就不必在保存到目标数据库之前创建映射器来将每个源类型映射到目标类型?
需要说明的是,在源DBML中,我只包含了必要的列。这就是为什么源类型和目标类型完全相同,但它们属于自己的DBML。
这两个DBML中有完全相同的表:

这个问题一直难以正确表达。问这个问题的另一种方式是:“我能否仅使用源DBML中的一种类型,从源表中获取数据,并将其保存到目标DB?”
发布于 2012-05-01 03:46:21
正如@David建议的那样,在不同的名称空间中创建DBML,然后使用Automapper或编写一些代码来生成映射(考虑到您的需求,这非常简单)。
有没有办法在数据上下文之间共享这些类型?
不是的。
如果没有,有没有办法将源类型转换为目标类型,这样我就不必在保存到目标数据库之前创建映射器来将每个源类型映射到目标类型?
你必须创建映射--然而,这真的很简单(属性具有相同的名称、类型等)。我甚至认为如果没有Linq2Sql或任何其他对象关系管理,它会更容易。我想你应该删除所有的约束,FK等,在SQL命令层复制数据(自己生成代码),然后重新创建所有的约束。
https://stackoverflow.com/questions/10389521
复制相似问题