C# 包括不使用实体框架查询

C# 包括不使用实体框架查询,c#,entity-framework,eager-loading,C#,Entity Framework,Eager Loading,我不确定发生了什么变化,但是,回到几周前我正在开发的应用程序后,我的.Include()调用不再适用于我的一个相关表。奇怪的是,它适用于不同的桌子。下面是一些带有注释的代码,说明了我的结果: //Get the order and nothing else. using (OrderEntity orderContext = new OrderEntity(OrdersConnectionString)) { var query = from order in orderContext.

我不确定发生了什么变化,但是,回到几周前我正在开发的应用程序后,我的
.Include()
调用不再适用于我的一个相关表。奇怪的是,它适用于不同的桌子。下面是一些带有注释的代码,说明了我的结果:

//Get the order and nothing else.
using (OrderEntity orderContext = new OrderEntity(OrdersConnectionString)) {
    var query = from order in orderContext.ShippingOrders
                where order.ShipperId == shippingId
                select order;

    //I got a value!
    shippingOrder = query.ToList().FirstOrDefault();
}

//Get the line item and nothing else.
using (OrderEntity orderContext = new OrderEntity(OrdersConnectionString)) {
    var query = from orderItem in orderContext.ShippingOrderItems
                where orderItem.ShipperId == shippingId
                select orderItem;

    //I got a value!
    shippingOrderItems = query.ToList();
}
这就是我困惑的地方:

//Get the order *AND* the line item
using (OrderEntity orderContext = new OrderEntity(OrdersConnectionString)) {
    var query = from order in orderContext.ShippingOrders.Include("ShippingOrderItems")
                where order.ShipperId == shippingId
                select order;

    //I get a ShippingOrder result, but no items are returned.  I used the SQL Server Profiler and saw the SQL that got executed; it contains the item, EF just isn't loading the object.
    shippingOrder = query.ToList().FirstOrDefault();
}
我能够返回不同相关表的结果。这使我认为EF缺少订单和行项目表之间的关系,但是,我不确定如何修复它

编辑:这是订单实体

/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmEntityTypeAttribute(NamespaceName="OrderModel", Name="ShippingOrder")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class ShippingOrder : EntityObject
{
    #region Factory Method

    /// <summary>
    /// Create a new ShippingOrder object.
    /// </summary>
    /// <param name="shipperId">Initial value of the ShipperId property.</param>
    public static ShippingOrder CreateShippingOrder(global::System.String shipperId)
    {
        ShippingOrder shippingOrder = new ShippingOrder();
        shippingOrder.ShipperId = shipperId;
        return shippingOrder;
    }

    #endregion
    #region Primitive Properties

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
    [DataMemberAttribute()]
    public global::System.String ShipperId
    {
        get
        {
            return _ShipperId;
        }
        set
        {
            if (_ShipperId != value)
            {
                OnShipperIdChanging(value);
                ReportPropertyChanging("ShipperId");
                _ShipperId = StructuralObject.SetValidValue(value, false);
                ReportPropertyChanged("ShipperId");
                OnShipperIdChanged();
            }
        }
    }
    private global::System.String _ShipperId;
    partial void OnShipperIdChanging(global::System.String value);
    partial void OnShipperIdChanged();

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
    [DataMemberAttribute()]
    public global::System.String OrderNumber
    {
        get
        {
            return _OrderNumber;
        }
        set
        {
            OnOrderNumberChanging(value);
            ReportPropertyChanging("OrderNumber");
            _OrderNumber = StructuralObject.SetValidValue(value, true);
            ReportPropertyChanged("OrderNumber");
            OnOrderNumberChanged();
        }
    }
    private global::System.String _OrderNumber;
    partial void OnOrderNumberChanging(global::System.String value);
    partial void OnOrderNumberChanged();

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
    [DataMemberAttribute()]
    public Nullable<global::System.DateTime> OrderDate
    {
        get
        {
            return _OrderDate;
        }
        set
        {
            OnOrderDateChanging(value);
            ReportPropertyChanging("OrderDate");
            _OrderDate = StructuralObject.SetValidValue(value);
            ReportPropertyChanged("OrderDate");
            OnOrderDateChanged();
        }
    }
    private Nullable<global::System.DateTime> _OrderDate;
    partial void OnOrderDateChanging(Nullable<global::System.DateTime> value);
    partial void OnOrderDateChanged();

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
    [DataMemberAttribute()]
    public global::System.String CustomsComment
    {
        get
        {
            return _CustomsComment;
        }
        set
        {
            OnCustomsCommentChanging(value);
            ReportPropertyChanging("CustomsComment");
            _CustomsComment = StructuralObject.SetValidValue(value, true);
            ReportPropertyChanged("CustomsComment");
            OnCustomsCommentChanged();
        }
    }
    private global::System.String _CustomsComment;
    partial void OnCustomsCommentChanging(global::System.String value);
    partial void OnCustomsCommentChanged();

    #endregion

    #region Navigation Properties

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [XmlIgnoreAttribute()]
    [SoapIgnoreAttribute()]
    [DataMemberAttribute()]
    [EdmRelationshipNavigationPropertyAttribute("OrderModel", "FK_ShippingOrderItem_ShippingOrder", "ShippingOrderItem")]
    public EntityCollection<ShippingOrderItem> ShippingOrderItems
    {
        get
        {
            return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<ShippingOrderItem>("OrderModel.FK_ShippingOrderItem_ShippingOrder", "ShippingOrderItem");
        }
        set
        {
            if ((value != null))
            {
                ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<ShippingOrderItem>("OrderModel.FK_ShippingOrderItem_ShippingOrder", "ShippingOrderItem", value);
            }
        }
    }

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [XmlIgnoreAttribute()]
    [SoapIgnoreAttribute()]
    [DataMemberAttribute()]
    [EdmRelationshipNavigationPropertyAttribute("OrderModel", "FK_ShippingOrderItemTracking_ShippingOrder", "ShippingOrderTracking")]
    public EntityCollection<ShippingOrderTracking> ShippingOrderTrackings
    {
        get
        {
            return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<ShippingOrderTracking>("OrderModel.FK_ShippingOrderItemTracking_ShippingOrder", "ShippingOrderTracking");
        }
        set
        {
            if ((value != null))
            {
                ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<ShippingOrderTracking>("OrderModel.FK_ShippingOrderItemTracking_ShippingOrder", "ShippingOrderTracking", value);
            }
        }
    }

    #endregion
}
//
///没有可用的元数据文档。
/// 
[EdmEntityTypeAttribute(NamespaceName=“OrderModel”,Name=“ShippingOrder”)]
[可序列化()]
[DataContractAttribute(IsReference=true)]
公共部分类ShippingOrder:EntityObject
{
#区域工厂法
/// 
///创建新的ShippingOrder对象。
/// 
///ShipperId属性的初始值。
公共静态ShippingOrder CreateShippingOrder(全局::System.String shipperId)
{
ShippingOrder ShippingOrder=新的ShippingOrder();
shippingOrder.ShipperId=ShipperId;
退货订单;
}
#端区
#区域基本属性
/// 
///没有可用的元数据文档。
/// 
[EdmScalarPropertyAttribute(EntityKeyProperty=true,IsNullable=false)]
[DataMemberAttribute()]
公共全局::System.String ShipperId
{
得到
{
返回船期;
}
设置
{
如果(_ShipperId!=值)
{
装船变更(价值);
报告财产变更(“ShipperId”);
_ShipperId=StructuralObject.SetValidValue(值,false);
报告财产变更(“ShipperId”);
OnShipperIdChanged();
}
}
}
私有全局::System.String\u ShipperId;
ShipperIdChange上的部分无效(全局::System.String值);
装运上的部分无效已更改();
/// 
///没有可用的元数据文档。
/// 
[EdmScalarPropertyAttribute(EntityKeyProperty=false,IsNullable=true)]
[DataMemberAttribute()]
公共全局::System.String OrderNumber
{
得到
{
返回_OrderNumber;
}
设置
{
OnOrderNumber更改(值);
ReportPropertyChange(“订单号”);
_OrderNumber=StructuralObject.SetValidValue(值,true);
ReportPropertyChanged(“订单号”);
onOrderNumber已更改();
}
}
私有全局::System.String\u OrderNumber;
OrderNumber更改部分无效(全局::System.String值);
OrderNumberChanged()上的部分无效;
/// 
///没有可用的元数据文档。
/// 
[EdmScalarPropertyAttribute(EntityKeyProperty=false,IsNullable=true)]
[DataMemberAttribute()]
公共可为空的OrderDate
{
得到
{
返回_OrderDate;
}
设置
{
OnOrderDateChanging(值);
报告财产变更(“订单日期”);
_OrderDate=StructuralObject.SetValidValue(值);
ReportPropertyChanged(“订单日期”);
OnOrderDateChanged();
}
}
私有可空的_OrderDate;
OrderDateChanged部分无效(可为空值);
OrderDateChanged()上的部分无效;
/// 
///没有可用的元数据文档。
/// 
[EdmScalarPropertyAttribute(EntityKeyProperty=false,IsNullable=true)]
[DataMemberAttribute()]
公共全局::System.String CustomsComment
{
得到
{
返回_CustomsComment;
}
设置
{
onCustomsCommentChanged(值);
报告财产变更(“客户建议”);
_CustomsComment=StructuralObject.SetValidValue(值,true);
报告财产变更(“客户建议”);
OnCustomsCommentChanged();
}
}
私有全局::System.String _CustomsComment;
部分无效OnCustomsCommentChanged(全局::System.String值);
CustomsCommentChanged()上的部分无效;
#端区
#区域导航属性
/// 
///没有可用的元数据文档。
/// 
[XmlIgnoreAttribute()]
[SoapIgnoreAttribute()]
[DataMemberAttribute()]
[EdmRelationshipNavigationPropertyAttribute(“订单模型”、“FK_ShippingOrderItem_ShippingOrder”、“ShippingOrderItem”)]
公共实体集合ShippingOrderItems
{
得到
{
return((ientityWithRelationship)this).RelationshipManager.GetRelatedCollection(“OrderModel.FK_ShippingOrderItem_ShippingOrder”,“ShippingOrderItem”);
}
设置
{
如果((值!=null))
{
((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection(“OrderModel.FK_ShippingOrderItem_ShippingOrder”,“ShippingOrderItem”,值);
}
}
}
/// 
///没有可用的元数据文档。
/// 
[XmlIgnoreAttribute()]
[SoapIgnoreAttribute()]
[DataMemberAttribute()]
[EdmRelationshipNavigationPropertyAttribute(“订单模型”、“FK_ShippingOrderItemTracking_ShippingOrder”、“ShippingOrderTracking”)]
公共实体集合ShippingOrderTrackings
{
得到
{
return((ientityWithRelationship)this).RelationshipManager.GetRelatedCollection(“OrderModel.FK_ShippingOrderItemTracking_ShippingOrder”,“ShippingOrderTracking”);
}
设置
{
如果((值!=null))
{
((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection(“OrderModel.FK_ShippingOrderItemTracking_ShippingOrder”,“ShippingOrderTracking”,值);
}
}
}
#端区
}

我仍然不确定是什么原因造成的
if (Order.shippingId != null && Order.shippingId > 0)
    orderContext.LoadProperty(Orders, Order => Order.ShippingOrderItems);