2

データベースは int から bigint に移行中です。移行されたパーティションでは、bigint として格納されているテーブルに列名があり、他のパーティションでは int (移行対象) として格納されています。単一のデータコンテキストを使用して両方のデータベースにクエリを実行できるかどうか疑問に思っています。dbml を bigint として使用し、列名を int として定義した db->table でクエリを実行する場合。以下のエラーが表示されます

指定されたキャストは無効です。System.Data.SqlClient.SqlBuffer.get_Int64() で System.Data.SqlClient.SqlDataReader.GetInt64(Int32 i) で

4

1 に答える 1

1

回避策を実行する必要があります。すべてのテーブルを真のデータ型で正しく宣言します。次に、それらをクエリの一部として変換します。例:

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

タイプが一致し、逆シリアル化も機能するため、それらを結合できるようになりました(またはそれらを使用してやりたいことは何でも)。

于 2013-03-20T23:03:02.397 に答える