クエリでエンティティが要求されたときに、特定のナビゲーション プロパティを自動熱心にロードするために、DbContext を改ざんする方法はありますか? (遅延読み込みなし)。
エンティティ フレームワーク 5
例:
var supremeEmployee = context.Employees.FirstOrDefault(x => x.EmployeeId == 42);
返されたモデルは、「Department」ナビゲーション プロパティが事前設定された状態で返されます。
クエリでエンティティが要求されたときに、特定のナビゲーション プロパティを自動熱心にロードするために、DbContext を改ざんする方法はありますか? (遅延読み込みなし)。
エンティティ フレームワーク 5
例:
var supremeEmployee = context.Employees.FirstOrDefault(x => x.EmployeeId == 42);
返されたモデルは、「Department」ナビゲーション プロパティが事前設定された状態で返されます。
モデルがどのように見えるかによって異なります。インターフェイスまたは継承を使用している場合は、常にナビゲーションプロパティを含むその型のジェネリック制約を使用して、DbContextクラスに関数を追加できます。
私の経験では、通常はそうしないほうがよいのですが、パフォーマンスの面で。私は、現時点で必要なフィールドだけを匿名タイプにロードすることを好みます。
最も基本的な方法でこれを行うことができます:
public class Department
{
public int Id { get; set; }
}
public class Employee
{
public int Id { get; set; }
public Department Department { get; set; }
}
public class MyContext : DbContext
{
protected DbSet<Employee> Employees { get; set; }
public IQueryable<Employee> LoadEmployees()
{
return Employees.Include(p => p.Department);
}
}