編集:これは、基本的なプログラミング(nullオブジェクト参照を逆参照しようとするなど)を知らない場合には問題ありません。Entity Framework 6クエリによってNullReferenceExceptionが生成される
編集:Linqpad内のEFからのスタックトレースを追加しました。 EF6を使用して
は、私は非常に単純なクエリを持っている:それは不思議に停止するまで
var menu = dbcontext.Tree.Where(t => t.Left > 2 && t.Right < 10).ToList();
は、これはすぐに働きました。 dbcontext.Tree
はSQL Server 2012のビューです。Linqpad5を使用すると、組み込みの接続を使用して期待した結果が得られます。プロジェクトへのEF接続を設定すると、NREが取得されます。 SQLをチェックして、それをコピーしてSQLクエリーウィンドウに貼り付け、適切な結果を得ることができます。私はWhereコールもなくNREを取得します。
データベースからモデルを更新して何かを更新しようとしました。私はモデルからビューを削除して更新しようとしました。私はモデルを完全に削除して再作成しようとしました。 Visual Studioとコンピュータを再起動しました。私は同じNREのクエリを取得します。私は他に何を試すことができるのか分かりません。このNREは私には全く意味がありません。もし私がそれ以前に働いていなかったら、私はEFのバグまでそれをチョークするだろう。
誰かがこれに対処しましたか?この特定の状況をオンラインで検索しても、何も生じませんでした。
スタックトレース:
at System.Data.Entity.Core.EntityKey.AddHashValue(Int32 hashCode, Object keyValue)
at System.Data.Entity.Core.EntityKey.GetHashCode()
at System.Collections.Generic.GenericEqualityComparer`1.GetHashCode(T obj)
at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
at System.Collections.Generic.Dictionary`2.TryGetValue(TKey key, TValue& value)
at System.Data.Entity.Core.Objects.ObjectStateManager.TryGetEntityEntry(EntityKey key, EntityEntry& entry)
at System.Data.Entity.Core.Objects.ObjectStateManager.FindEntityEntry(EntityKey key)
at System.Data.Entity.Core.Common.Internal.Materialization.Shaper.HandleEntityAppendOnly[TEntity](Func`2 constructEntityDelegate, EntityKey entityKey, EntitySet entitySet)
at lambda_method(Closure , Shaper)
at System.Data.Entity.Core.Common.Internal.Materialization.Coordinator`1.ReadNextElement(Shaper shaper)
at System.Data.Entity.Core.Common.Internal.Materialization.Shaper`1.SimpleEnumerator.MoveNext()
at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()
可能な重複としてフラグを付ける前に、質問されている質問を十分に理解してください。 – Pfhoenix
[最小限で完全で検証可能な例](http://stackoverflow.com/help/mcve)を含めてください。 [良い質問をするにはどうすればいいですか](http://stackoverflow.com/help/how-to-ask)も読んでください。あなたの質問が現在書かれているので、あなたの質問のための唯一の最良の解決策はNREと重複しています。あなたはスタックトレースを提供しておらず、実際には何も言及していません(またはその点については言及していません:例は 'dbcontext'です)?' dbcontext.Tree'はnullですか?結果はdbcontext.Tree.ToList() )、または他の任意の詳細。 – Igor
あなたのデータに含まれるすべてのツリーには、「左」と「右」の値がありますか? – trailmax