5

我正在尝试用一句话来包含和分组

var instanceIdList = context.
    Tracks.
    Include("Services").
    GroupBy(x => x.ServiceId).
    Take(top);

但是当我在调试时检查结果时,我看不到任何包含值

我试图以另一种方式做

var objectContext = ((IObjectContextAdapter)context).ObjectContext;
var set = objectContext.CreateObjectSet<Track>();
var instanceIdList = set.Include("Services").GroupBy(x => x.ServiceId);

这是课程: 跟踪

  public partial class Track
{
    public long Id { get; set; }
    public System.Guid ServiceId { get; set; }
    public Nullable<System.Guid> ServiceInterfaceId { get; set; }
    public Nullable<System.Guid> ProviderId { get; set; }
    public System.Guid ServiceInstanceId { get; set; }
    public System.Guid ActivityParentId { get; set; }
    public System.Guid ActivityInstanceId { get; set; }
    public int ActivityType { get; set; }
    public int ServiceRole { get; set; }
    public int TrackOrder { get; set; }
    public System.DateTime Datetime { get; set; }
    public Nullable<System.Guid> MessageId { get; set; }
    public int Status { get; set; }
    public Nullable<int> ESBErrorCode { get; set; }
    public Nullable<int> ESBTecnicalErrorCode { get; set; }
    public string ErrorDescription { get; set; }
    public string PortName { get; set; }
    public string MachineName { get; set; }
    public string ConsumerId { get; set; }
    public string ExternalId { get; set; }
    public string ConsumerMachineName { get; set; }
    public int ServiceBehavior { get; set; }

    public virtual Message Message { get; set; }
}

服务

      public partial class Service
      {
        public Service()
        {
        this.Providers = new HashSet<Provider>();
        this.ServiceInterfaces = new HashSet<ServiceInterface>();
            }

    public System.Guid ServiceId { get; set; }
    public string ServiceName { get; set; }
    public string ServiceNumber { get; set; }
    public Nullable<System.Guid> ModelSchemaId { get; set; }

    public virtual ICollection<Provider> Providers { get; set; }
    public virtual ICollection<ServiceInterface> ServiceInterfaces { get; set; }
}

但结果是一样的

谢谢

三木

4

3 回答 3

3

您还需要将 include 放在最后。

像这样...

var instanceIdList = context.Tracks
                            .GroupBy(x => x.ServiceId)
                            .Take(top)
                            .Include("Services");
于 2012-10-17T15:33:26.610 回答
1

您尚未Services在您的Track类中定义任何导航属性,您需要添加以下属性。

public virtual ICollection<Service> Services { get; set; }
于 2012-10-17T12:42:05.337 回答
0

您的 Track 类没有称为服务的成员访问器,因此

Include("Services")

不会工作。

您需要从 Track 链接到 Service,例如

public Service Services {get;set;}
于 2012-10-17T12:37:43.417 回答