0

SQL Server 2012データベースに対してエンティティフレームワーク4.3.1を使用しており、これらのテーブルを含むデータベースがあります(他にもありますが、関連するビットは以下にあります):

Customer

    CustomerNumber nvarchar(10) not null primary key

SalesDocument

    SalesDocumentNumber nvarchar(10) not null primary key
    CustomerNumber nvarchar(10) not null

次のコード スニペットを実行しています。

const string docNumber = "111348718";
IQueryable<SalesDocument> docs = factory.CreateSalesDocumentRepository().All;

var ssd = docs.Single(s => s.SalesDocumentNumber.Equals(docNumber));

if (ssd.Customer == null)
    Console.WriteLine("NOOOOOOO");

ssd = docs
    .Include(s => s.Customer)
    .Single(s => s.SalesDocumentNumber.Equals(docNumber));

if (ssd.Customer == null)
    Console.WriteLine("YESSSSSS");

NOOOOOOOしか印刷されません。

そのため、遅延読み込みは機能していないようですが、熱心な読み込みは機能しています。

このシナリオで何がうまくいかなかったのか、一体どのようにデバッグできますか(これが失敗する可能性のある原因は何ですか-私にはEFのバグのように感じますが、それを宣言することを延期し、蒸し暑い山全体を捨てています窓の)?2番目のものが正常に機能していれば、構成は確かにOKです...?

4

1 に答える 1

0

卵を吸うことを教えるつもりはありませんが、あなたの で LazyLoading を有効にしましたObjectContextか?

つまり、ObjectContext コンストラクターで

 this.ContextOptions.LazyLoadingEnabled = true;
于 2012-08-02T10:05:42.753 に答える