![](/img/trans.png)
[英]LINQ to Entities, join two tables, then group and take sums of columns from both tables
[英]Linq to entities to join two tables
有没有办法“加入”两个数据库表,这样我就可以从第一个表中获取 ID,然后使用这个 ID 从第二个表中获取描述?
例如,以下查询获取零件 ID,但我需要找到此零件 ID 的描述,以便我可以将描述放到数据网格中。 我尝试在 Web 服务器端使用“包含”,但在运行时失败。
var query = myContext.Get_Table1();
query = query.Where(c => c.Part_ID == '12345');
LoadOperation<My.Web.Table1> loadOp = this.maxContextTransactionHistory.Load(query, QueryCompletedCallback, null);
this.dataGrid.ItemsSource = loadOp.Entities;
我认为您正在使用 WCF RIA 服务? 如果您标记了您的问题以表明这一点,那将会很有帮助。
如果是这种情况,您将需要使用DomainService中的Include方法将相关实体包含在查询结果中。
您还需要将IncludeAttribute应用于关联以确保将它们编组到客户端。 您可以将该属性应用于此处介绍的“好友”class。
理论上,将 IcludeAttribute 直接应用于生成的实体类中的属性就足够了。 在那里,它们将被覆盖。
下一个选择是部分 class。 在此处添加具有相同签名的另一个属性(以便可以将属性应用于它)会导致与原始属性发生冲突。
解决方案是使用在部分 class 中定义的新 class。 MetadataType 属性用于部分 class 以指示定义其元数据的 class。
以下代码将确保 Part_Stock 的 Part_Table 在发送到客户端时包含在内。 您将需要类似的代码来涵盖您感兴趣的任何其他属性。
[MetadataTypeAttribute(typeof(Part_Stock.Metadata))]
public partial class Part_Stock
{
internal sealed class Metadata
{
// Metadata classes are not meant to be instantiated.
private Metadata()
{
}
[Include]
public EntityCollection<Stock_Table> Stock_Table { get; set; }
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.