0

次のオブジェクトがある場合:

public class Application 
{
    public int ApplicationId { get; set; }
    public string Name { get; set; }
    public virtual ICollection<TestAccount> TestAccounts { get; set; }
}

public class TestAccount
{
    public int TestAccountId { get; set; }
    public int ApplicationId { get; set; }
    public string Name { get; set; }
    public virtual Application Application { get; set; }
}

EF マッピングは次のようになります。

modelBuilder.Entity<Application>()
    .HasMany(a => a.TestAccounts)
    .WithRequired(t => t.Application)
    .WillCascadeOnDelete(false);

コードの一部で、Application のデータを取得し、TestAccount データを返すようにします。

コードの別の部分で、アプリケーションのデータを取得し、TestAccount データを返さないようにします。

LINQ または他の方法でこれを実現する方法はありますか?

4

1 に答える 1

0

この質問はすでにここで回答されています: Disable lazy loading by default in Entity Framework 4 .

基本的に、DbContext のコンストラクターで、これを追加するだけです。

this.Configuration.LazyLoadingEnabled = false;

これが役立つことを願っています。

編集

また、後で手動でロードする方法を知りたい場合は、次のように使用するだけで簡単に実行できますInclude()

var query = context.Application.Include(x => x.TestAccounts).ToList()

于 2013-03-06T04:23:36.503 に答える