2017-02-09 16 views
0

これは、テーブルから行のリストを返す非常に単純な関数の下にあります。EF 6行制限を自動的に追加する

SELECT 
"Extent1"."ID" AS "ID", 
"Extent1"."NAME" AS "NAME", 
"Extent1"."VALUE" AS "VALUE", 
"Extent1"."DESCRIPTION" AS "DESCRIPTION", 
"Extent1"."ACTIVE_FLAG" AS "ACTIVE_FLAG", 
"Extent1"."CATEGORY_ID" AS "CATEGORY_ID" 
FROM "SCHEMANAME"."CONFIGURATIONS" "Extent1" 
WHERE ('Y' = "Extent1"."ACTIVE_FLAG") 
WHERE (ROWNUM <= (50)); 

お知らせそこの最後の行、それはそこに理由はない、:IISアプリケーションプールを再起動すると、上記のコードは、SQLの下に作成するときに

public IEnumerable<Configuration> GetConfigurations() 
{ 
    var tbl = Context.Configurations.AsNoTracking().Where(a => a.ActiveFlag == 'Y').ToList(); 

    return tbl; 
} 

問題が時々あります。アプリケーションは「SQLコマンドが正常に終了していません」という例外が発生したときに例外をスローし始めます.App-Poolを再起動するだけで問題は自動的に修正されます。

なぜEntity Framework 6.1.3に何の理由もなく余分なwhere節が追加されるのは誰も知っていますか? Oracle.ManagedDataAccess.EntityFrameworkバージョン= "12.1.2400"と "Oracle.ManagedDataAccess"バージョン= "12.1.24160419"パッケージを使用します。

+0

最新バージョンのOracleドライバを使用していますか? – DavidG

+0

として:[nugetパッケージ](https://www.nuget.org/packages/Oracle.ManagedDataAccess/)私は1つのマイナーバージョンの背後にあると思われます。管理されたドライバについて質問している場合。理由があると信じる理由はありますか?問題はまれにしか起こらないので、私がアップグレードすればテストする具体的な方法はありません。 – Neel

+0

回避策として、私はこれを今のところ行っています。まだ原因を知りません。将来問題が表示されない場合はここで更新します。 'Context.Configurations.Load(); var tbl = Context.Configurations.Local.Where(a => a.ActiveFlag == Constants.CSS_TRUE).ToList(); ' – Neel

答えて

0

以下のようにアプリケーションプールのリサイクル後にアプリケーションが読み込まれると、EFが最初のテーブルを読み込む方法を変更しました。

Context.Configurations.Load(); 
var tbl = Context.Configurations.Local.Where(a => a.ActiveFlag == 'Y').ToList(); 

問題は再び発生しませんでした。

関連する問題