探す場所:データ型は、コードのこの部分でのEntity Frameworkの
public long my_function()
{
return bdd.Database.SqlQuery<long>("SELECT count(*) FROM mytable")).First();
}
このコードは、MySQLデータベースに素晴らしい作品。
しかし、私は、SQL Serverデータベース上で同じコードを実行した場合、私はこのエラーを取得:
実際にpublic int my_function()
{
return bdd.Database.SqlQuery<int>("SELECT count(*) FROM mytable")).First();
}
、私は思う:
Erreur: The specified cast from a materialized 'System.Int32' type to the 'System.Int64' type is not valid.
私は、私は私のコードを変更した場合は動作しますSQL Serverはcount(*)の戻り値にint32を使用し、mysqlはint64を使用しています。 EFとC#はint32をint64にキャストすることができません(奇妙です)
これまでに気づいたことがありますか?
私はCOUNT(*)はINT32容量を超えた場合に何が起こるか疑問に思って... (レコードの多くを持っている)
おかげでマップするSQLのINTを返しCOUNT
SQL Serverで