Entity framework 包括子实体ADO.net EF、LinqToEntities
我试图让我的所有子实体加载到与“主”表相同的查询中,而不是每个属性逐个加载 它是一个连接到SQL Server 2008的ADO.net数据库模型 该应用程序是一个LightSwitch应用程序,使用和LinqToEntites域服务 我的主表元数据,其中“国家”是外键:Entity framework 包括子实体ADO.net EF、LinqToEntities,entity-framework,ado.net,linq-to-entities,visual-studio-lightswitch,Entity Framework,Ado.net,Linq To Entities,Visual Studio Lightswitch,我试图让我的所有子实体加载到与“主”表相同的查询中,而不是每个属性逐个加载 它是一个连接到SQL Server 2008的ADO.net数据库模型 该应用程序是一个LightSwitch应用程序,使用和LinqToEntites域服务 我的主表元数据,其中“国家”是外键: [MetadataTypeAttribute(typeof(RuleEntry.RuleEntryMetadata))] public partial class RuleEntry { internal sealed
[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; }
}
}
[MetadataTypeAttribute(typeof(Country.CountryMetadata))]
公共部分阶级国家
{
内部密封类元数据
{
私有元数据()
{
}
[关键]
公共字符串代码{get;set;}
公共字符串名称{get;set;}
[协会(“规则条目\国家”、“代码”、“国家”,IsForeignKey=false)]
公共EntityCollection规则项{get;set;}
}
}
以及域服务中的调用:
[Query(IsDefault = true)]
public IQueryable<RuleEntry> GetRuleEntries()
{
var query = this.ObjectContext.RuleEntries.Include("Country1");
return query;
}
[查询(IsDefault=true)]
公共IQueryable GetRuleEntries()
{
var query=this.ObjectContext.RuleEntries.Include(“Country1”);
返回查询;
}
这不会产生错误,但国家实体仍不会包含在查询中,因此每行加载一次,这需要很长的timd
谢谢您检查了发送到数据库的SQL了吗?@GertArnold我不知道在哪里可以看到纯SQL,但这里有一个服务调用的快照,首先加载主表,然后逐个加载所有相关实体。