EF4 ソリューションを EF6 に移行する際に問題が発生しています。
T4 テンプレートを使用して、ObservableCollection< T> に基づくナビゲーション プロパティを持つ永続的な無知な POCO を生成します。
ObjectContext 実装はエンティティ セットを IObjectSet< entity> として公開するため、ObjectQuery から Include() メソッドを失い、次のように IQueryable で拡張メソッドを使用してそれを取り戻す必要があります。
public static IQueryable<TSource> Include<TSource>(this IQueryable<TSource> source, string path)
{
IQueryable<TSource> returnValue = source;
var objectQuery = source as ObjectQuery<TSource>;
if (objectQuery != null)
{
returnValue = objectQuery.Include(path);
}
return returnValue;
}
EF6 を使用するようにソリューションを更新したので、.Include() を使用してクエリを実行すると、次の System.Data.Entity.Core.EntityException が表示されるようになりました。
「タイプ 'DataEntities.Parent' のエンティティのナビゲーション プロパティ 'Details' は、Entity Framework がコレクションの変更を追跡できるようにするために、ICollection< T> を実装する必要があります。」
私が得られないのは、「詳細」プロパティが ICollection< T> である ObservableCollection< T> を継承するカスタム型であるため、ICollection< T> を実装する必要があるという例外はなぜですか?
誰かがこれに光を当てているなら、私は感謝します、ありがとう。