NpgsqlでEntity Framework 6を使用しています。 Npgql.EntityFrameworkからEntityFramework6.Npgsqlパッケージのバージョン3.1.1に更新されました。Cant cast to float8をSingleにキャストしますか? NpgsqlのSystem.InvalidCastException
簡単に修正された移動による小さな問題の後で、私は今この例外に取り残されています。ログから私は得る:
Date = 2016-08-17 15:10:58 | Severity = Exception | Source = Reflect.Logging.SimpleLog.SimpleLogLogger.LogError | ThreadId = 7 | Type = System.InvalidCastException | Source =
Npgsql.SimpleTypeHandler`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].ReadFully | Message = Can't cast database type float8 to Single | StackTrace = at Npgsql.SimpleTypeHandler`1[T].ReadFully[T2] (Npgsql.ReadBuffer buf, Int32 len, Npgsql.BackendMessages.FieldDescription fieldDescription) in <filename unknown>:line 0
at Npgsql.TypeHandler.ReadFully[T] (Npgsql.BackendMessages.DataRowMessage row, Int32 len, Npgsql.BackendMessages.FieldDescription fieldDescription) in <filename unknown>:line 0
at Npgsql.NpgsqlDataReader.ReadColumnWithoutCache[T] (Int32 ordinal) in <filename unknown>:line 0
私のPostgresスキーマを見ると、私は 'float8'タイプのフィールドを見ません。
これは、例外をスローする方法である:
public List<TUser> GetByEmail(string email)
{
return Context.Set<TUser>().Where(q => q.Email == email).ToList();
}
そして、これは、DBスキーマです:
CREATE TABLE "Users" (
"Id" integer NOT NULL,
"UtcOffset" double precision,
"Guid" uuid,
"NotificationHourOfDay" integer,
"NotificationTimeOfDay" time without time zone,
"SendNotifications" boolean,
"IsLocked" boolean,
"Username" character varying,
"Screenname" character varying,
"Email" character varying,
"IsConfirmed" boolean,
"ConfirmationToken" character varying,
"LastActivityDateUtc" timestamp without time zone,
"SignUpDateUtc" timestamp without time zone,
"SignUpIpAddress" character varying,
"CountryCode" character varying,
"CountryName" character varying,
"PasswordResetToken" uuid,
"PasswordResetRequestDateUtc" timestamp without time zone,
"IsAwaitingPasswordResetTokenConfirmation" boolean,
"MessageHistory" jsonb,
"SendDigest" boolean,
"DigestLastSendDateUtc" timestamp without time zone,
"SignUpUserAgent" text,
"SignUpApplication" character varying,
"PaymentProviderCustomerId" character varying,
"Discriminator" character varying,
"UserName" character varying,
"PasswordHash" bytea,
"Salt" bytea,
"Profile" jsonb,
"LegacyId" integer
);
誰かがこの例外の起源にいくつかの光を当てることができると私が何でありますか行方不明?
ありがとうございます!
データベース内のフィールドを例外の原因となるコードと質問に追加できますか?そうでなければ、それは謎です。 – wandercoder
質問を編集して情報を追加しました – Corstiaan