将dbml更改为bigint适用于int值

时间:2013-03-20 19:46:31

标签: c# linq-to-sql

我们的数据库正在从int迁移到bigint。在迁移的分区中,我在一个表中有一个列名,该表存储为bigint,而在其他分区中,它存储为int(要迁移)。想知道是否可以使用单个datacontext来查询两个数据库。当我将dbml作为bigint并在db->表中进行查询时,该表已将列名定义为int。我收到以下错误

指定的演员表无效。在System.Data.SqlClient.SqlBuffer.get_Int64()    在System.Data.SqlClient.SqlDataReader.GetInt64(Int32 i)

1 个答案:

答案 0 :(得分:1)

您必须执行一种解决方法:正确声明所有表的真实数据类型。然后将它们转换为查询的一部分。例如:

tableBigint.Select(x => x.ID)
tableInt.Select(x => (long)x.ID)

您现在可以将它们联合起来(或者您想对它们做任何事情),因为类型匹配以及反序列化都可以。