5

プロジェクトで作業しているときに、ナビゲーション プロパティの読み込みで理解できない奇妙な動作を見ました。

この「問題」を再現する小さな例を次に示します。

ここに画像の説明を入力

会社のデータ(ナビゲーションプロパティ)を含めずに年をロードしたい。

私のコード:

public static Year GetYear(int id)
{
    using (var context = new testModelContainer())
    {
        var result = context.YearSet.FirstOrDefault(c => c.Id == id);
        //Company test = context.CompanySet.Where(c => c.Id == id).FirstOrDefault();

        return result;
    }
}  

これは、ナビゲーションプロパティのデータなしで、希望する年を返しますが、行のコメントを外して行を実行すると、おそらく会社の名前などを知りたいため、会社のデータが会社に自動的に含まれます今年のナビゲーション プロパティ。

この動作を防ぐ方法はありますか? セキュリティ上の理由から、「親」のデータを送信することは避けたいと思います。

EF 6、.NET 4.5 を使用しています。

4

4 に答える 4

0

おそらく、遅延読み込みが有効になっています。

無効にしてみてください:

context.Configuration.LazyLoadingEnabled = false;

Entity Framework 4 でデフォルトで遅延読み込みを無効にする

于 2014-04-28T12:53:56.373 に答える