私はSQLServer2008で通常のビューを持っており、エンティティフレームワークを使用してデータベースアプローチから設計を生成しています。エンティティフレームワークのビューの重要な問題についてはすでに知っていますが、それは私の解決策ではありません。ビューからselect*をクエリすると、正しい3つの行が表示されますが、すべての行は同じであり、データベースビューの最初の行です。
いくつかの助けをいただければ幸いです。
私はSQLServer2008で通常のビューを持っており、エンティティフレームワークを使用してデータベースアプローチから設計を生成しています。エンティティフレームワークのビューの重要な問題についてはすでに知っていますが、それは私の解決策ではありません。ビューからselect*をクエリすると、正しい3つの行が表示されますが、すべての行は同じであり、データベースビューの最初の行です。
いくつかの助けをいただければ幸いです。
エンティティ フレームワークのビューの重要な問題については既に知っていますが、それは私の解決策ではありません。ビューからselect *をクエリすると、正しい3行が表示されますが、すべての行は同じで、データベースビューの最初の行です。
あなたが説明しているのは、正しくないキーによって引き起こされた問題です。3 つの行には一意の ID が必要です。一部の列または列のセットは、返される可能性のある各レコードを一意に識別する必要があります。これらの列は、デザイナーでエンティティ キーとして設定する必要があります。
返されるエンティティは読み取り専用であるため、ビューからデータを読み込むときに変更追跡を使用しないことで、この問題を回避することもできます。MergeOption.NoTracking
そのために使用する必要がありますObjectSet
:
context.MyViewEntities.MergeOption = MergeOption.NoTracking;
var data = context.MyViewEntities.ToList();