我试图让我的所有子实体都加载到与“主”表相同的查询中,而不是一个一个地加载每个属性。
这是一个连接到 SQL Server 2008 的 ADO.net 数据库模型。
该应用程序是一个使用 LinqToEntites 域服务的 LightSwitch 应用程序。
我的主表元数据,其中“国家”是外键:
[MetadataTypeAttribute(typeof(RuleEntry.RuleEntryMetadata))]
public partial class RuleEntry
{
internal sealed class RuleEntryMetadata
{
private RuleEntryMetadata()
{
}
.....
public string Country { get; set; }
[Include]
[Association("RuleEntry_Country", "Country", "Code", IsForeignKey=true)]
public Country Country1 { get; set; }
.....
}
}
}
国家元数据:
[MetadataTypeAttribute(typeof(Country.CountryMetadata))]
public partial class Country
{
internal sealed class CountryMetadata
{
private CountryMetadata()
{
}
[Key]
public string Code { get; set; }
public string Name { get; set; }
[Association("RuleEntry_Country", "Code", "Country", IsForeignKey = false)]
public EntityCollection<RuleEntry> RuleEntries { get; set; }
}
}
以及域服务中的调用:
[Query(IsDefault = true)]
public IQueryable<RuleEntry> GetRuleEntries()
{
var query = this.ObjectContext.RuleEntries.Include("Country1");
return query;
}
这不会产生任何错误,但 Country 实体仍然不会包含在查询中,因此会为每一行加载一次,这需要很长时间。
谢谢