2017-09-27 3 views
-1

この問題が発生したのは今回が初めてです。使い捨てコンテキストで古いデータを返すEntity Framework

public async Task<List<Code>> GetAllByType(string type) 
{ 
    using (var ctx = new DatabaseContext()) 
    { 
     return await ctx.Codes.Where(code => code.Type.Equals(type)).ToListAsync(); 
    } 
} 

これは私が上記の方法の結果から作成された私の見解について、観察コレクションを作成しようとしているときにつまずいてきた問題である:

は私のリポジトリ方法を考えてみましょう。したがって:

私は使い捨てコンテキストを使用していますが、クエリを作成するたびにリポジトリは古いデータを返します。私は手動で列の値として"TestType"の項目の一部を編集しましたが、変更されていない古いデータです。私は新しいエントリを3つ追加しました。が見つかりません。です。

はい、データベースにはというエントリがあります。データベースは大文字と小文字が区別されません。私が何をしても、すべての組み合わせを試しました.Entity Frameworkのコンテキストは古いデータを返しています。

誰でもこの問題が以前に発生しましたか?

ありがとうございます!

+0

「手作業で編集しましたか?どういう意味ですか? – mm8

+0

私はSQLテーブルを開いて、列エントリを手動で編集しました。スターターの場合は – Desomph

+0

、問題が解消されて正常に動作しない箇所を確認できます。 1.linqクエリが失敗する2. asyncが失敗する3. observablecollectionが失敗する4.どこか他が失敗する – Bijan

答えて

2

間違ったデータベースを編集している可能性があります。接続文字列を再確認し、アプリケーションが実際に接続しているものを編集していることを確認してください。

1

これはあなたのケースではありませんが、Contextが静的プロパティのように宣言されている場合、EFは古いデータを返すことができます。例:

public MyController : Controller { 
    public static DatabaseContext Db = new DatabaseContext(); 
} 
+0

ありがとう、今後の参考になるでしょう。 – Desomph

関連する問題