C#コンソールアプリケーションで遅延読み込みをテストしています。何らかの理由で遅延読み込みが機能していません。
context.ConfigurationのプロパティLazyLoadingEnabled
とプロパティを確認しました。ProxyCreationEnabled
それらは真実です。
私の財産は仮想です。
私は他の同様のSOの質問をチェックしましたが成功しませんでした。何が起こっているのかわかりません。
これは私のコードです(名前空間を表示しないように簡略化されています):
static void Main(string[] args) {
Models.DataContext dc = new Models.DataContext();
Console.WriteLine("Context Lazy {0}. Proxy Creation {1} ",
dc.Configuration.LazyLoadingEnabled,
dc.Configuration.ProxyCreationEnabled);
var grp = dc.Groups.FirstOrDefault();
Console.WriteLine("GroupId {1}, AttrSet is null = {0}",
grp.AttrSet == null , grp.Id);
var grp2 = dc.Groups.Include("AttrSet").FirstOrDefault();
Console.WriteLine("GroupId {1}, AttrSet is null = {0}",
grp2.AttrSet == null, grp2.Id);
}
class Group {
public System.Guid Id { get; set; }
public string Name { get; set; }
public virtual AttrSet AttrSet { get; set; }
}
class AttrSet {
public System.Guid Id { get; set; }
public string Name { get; set; }
}
これを実行した結果は次のとおりです。
コンテキストレイジーTrue。プロキシ作成True
GroupId 186ebc8a-dec7-4302-9f84-5a575577baac、AttrSetはnull = True
GroupId 186ebc8a-dec7-4302-9f84-5a575577baac、AttrSetはnull = False
ロードされたレコードが正しくAttrSet
、データベースに適切に含まれていることを確認します。
何か案は?
アップデート
誰かが実際にコードを見たい場合に備えて、非常に単純なテストプロジェクトを作成しました。
https://bitbucket.org/josea/eflazy(GIT:https://josea@bitbucket.org/josea/eflazy.git)を参照してください。