我有以下型号:
实体:
这段代码:
private static void ListAttributes(Product p)
{
p.ProductAttributes.Load();
foreach (var att in p.ProductAttributes)
{
att.Attribute.load();
Console.WriteLine("\tAttribute Name:{0} - Value {1}",
att.Attribute.Name,
att.AttributeValue);
}
}
这段代码将在每次在foreach循环中调用att.Attribute.Load()方法时触发查询,只有这样我才能显示属性的名称。 我想获取Attribute.Name以及获取所有属性值的查询,即加入ProductAttribute和Attribute。 有没有办法在我的方法中实现这个目标?
答案 0 :(得分:1)
看起来你有一个围绕EntityObject的包装器来自己加载每个实体。
如果你想保持这种结构。我认为您需要做的是重载ProductAttributes.Load()方法以接受枚举或其他内容。然后在该Load方法中,您可以执行Linq-to-Entity或Entity-SQL查询连接,并为您包含属性。
var query = from c in context.Product.Include("Attributes");