5

インクルードとグループ化を1つの文にしようとしています

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")

動作しません。

トラックからサービスにリンクする必要があります。

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