0

我试图让我的所有子实体都加载到与“主”表相同的查询中,而不是一个一个地加载每个属性。

这是一个连接到 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 实体仍然不会包含在查询中,因此会为每一行加载一次,这需要很长时间。

谢谢

4

0 回答 0