現在、EFコアからEFコアに変換する企業フレームワークをEFコアに変換しようとしています。私は少しブロックに入った。.NETコアで例外を引き起こすエンティティへのLINQ、 "値はnullではありません"
Value cannot be null. Parameter name: left
:以下の例外メッセージのコード結果の行を実行しようと
var allFolderAncestors = (from f in context.MENU_MenuFolders
from mtf in context.MENU_MenuToolbar_MenuFolders
.Where(x => x.MenuFolderId == f.Id
|| x.MenuFolderId == f.ParentFolderId)
.DefaultIfEmpty()
where (toolbarId == -1
|| (mtf == null
? false
: mtf.MenuToolbarId == toolbarId)
)
&& f.Id != 0
select new
{
AncestorFolderId = f.Id,
AncestorParentFolderId = f.ParentFolderId,
Id = f.Id,
ParentFolderId = f.ParentFolderId
}).ToList();
:EF6にだけ正常に動作EF「ストアドプロシージャが」今EFコア内のコードブロックに失敗しています
.NETコアソリューションでは、このコードがの場合、入力パラメータtoolbarId
が-1に設定されていると機能します。だから私の推測では、問題はOR節の反対側のどこかにあります。それが私が立ち往生している場所です。私は誰もが以前この問題を見て、それを修正する方法を知っているのだろうかと思っていた? EFコアとEF6との違いは?私はいくつかの異なる修正を試み、解決策をいくつかの場所で調べ、空になった。
toolbarId!= -1の場合、MENU_MenuFoldersまたはMENU_MenuToolbar_MenuFoldersはnullですか? –
いいえ、toolbarId == -1がデフォルトの場合です。toolbarIdの値が正の場合は、返されたレコードを「弱める」べきです。私はLINQPad 4で同じクエリを実行しようとしましたが、そこに問題はありません.... –
作業シナリオ(.NET 4.5と呼ぶもの) - EF6またはEFコアで使用されたEFバージョンは何ですか?つまり、実際にEFを変更していますか? –