【发布时间】:2009-11-04 04:54:55
【问题描述】:
我有一个对象,其中填充了四个不同相关实体的内容。但是,我有另一个实体,我不能将其作为查询的一部分包含在内,因为它在导航属性中没有直接与我正在拉的 IQueryable 表相关联。我试图包含的实体与已成功包含的四个不同实体之一相关。
有没有办法将这个实体包括(在 db 命中期间或之后)作为我正在创建的整体对象的一部分?
下面是我调用来构建 CARTITEM 对象的示例:
public List<CARTITEM> ListCartItem(Guid cartId)
{
//Create the Entity object
List<CARTITEM> itemInfo = null;
using (Entities webStoreContext = new Entities())
{
//Invoke the query
itemInfo = WebStoreDelegates.selectCartItems.Invoke(webStoreContext).ByCartID(cartId).ToList();
}
//Return the result set
return itemInfo;
}
这里是 selectCartItems 过滤器(我通常会在其中包含):
public static Func<Entities, IQueryable<CARTITEM>> selectCartItems =
CompiledQuery.Compile<Entities, IQueryable<CARTITEM>>(
(cart) => from c in cart.CARTITEM.Include("ITEM").Include("SHIPPINGOPTION").Include("RELATEDITEM").Include("PROMOTION")
select c);
从此我有了我的 CARTITEM 对象。问题是我想在这个对象中包含 PROMOTIONTYPE 表,但是由于 CARTIEM 实体没有直接到 PROMOTIONTYPE 表的导航属性,所以我得到一个错误。
如果您需要更多说明,请告诉我。 谢谢, 比利
【问题讨论】:
标签: entity-framework linq-to-entities