データベース アクセスに EF を使用するライブラリを開発しています。ライブラリの外部にエンティティが公開されるのを避けるために、すべてのテーブルのアクセスを内部に設定しました (エンティティ コンテナー アクセスも内部に設定しました)。問題は、ライブラリ内でエンティティを ID で取得しようとすると、Where
クエリが例外をスローすることです。理由はわかりません。
内部アクセスはダイアグラム (.edmx ファイル) に設定されており、ライブラリ内のファクトリとして使用している静的クラスには次のようなものがあります。
var id = 1234;
var mec = new MyEntitiesContainer();
var myEntity = mec.MyEntities.Where(e => e.MyEntitiesId == id).FirstOrDefault();
ID によってデータベースから具体的なエンティティ (行) を取得する単純な where クエリ。
すべてのエンティティ クラス アクセスがパブリックの場合は問題ありませんが、それらを内部に設定すると、次の例外がスローされます。
System.ArgumentNullException: Value cannot be null. Parameter name: source
at System.Linq.Queryable.Where[TSource](IQueryable`1 source, Expression`1 predicate)
助言がありますか?