私はあなたがActive Recordクラスの関係の遅延読み込みを修正または削除する必要があると思います。
遅延ロードの挙動はthe most current versionにライン300から始まる、ActiveRecord.ttテンプレートによって生成されます。
#region ' Foreign Keys '
<#
List<string> fkCreated = new List<string>();
foreach(FKTable fk in tbl.FKTables)
{
if(!ExcludeTables.Contains(fk.OtherTable)){
string propName=fk.OtherQueryable;
if(fkCreated.Contains(propName))
{
propName=fk.OtherQueryable+fkCreated.Count.ToString();
}
fkCreated.Add(fk.OtherQueryable);
#>
public IQueryable<<#=fk.OtherClass #>> <#=propName #>
{
get
{
var repo=<#=Namespace #>.<#=fk.OtherClass#>.GetRepo();
return from items in repo.GetAll()
where items.<#=CleanUp(fk.OtherColumn)#> == _<#=CleanUp(fk.ThisColumn)#>
select items;
}
}
<#
}
}
#>
#endregion
過度のキャッシングが解決された場合、私はこの全体の領域を除去し、見しようとするだろう。もちろん、遅延ロードの動作に頼っている場合は、これを解決する必要があります。
ありがとうございました。私はactiverecord-templateを変更したくないので、代わりにidの参照をdbの行に追加してラッパーを作成し、必要に応じてフェッチすることができます。 – ThomasD