连接实体以连接两个表
本文关键字:连接 两个 实体 | 更新日期: 2023-09-27 18:04:54
是否有任何方法可以'连接'两个DB表,以便我可以从第一个表获得ID,然后使用此ID从第二个表获得描述?
例如,下面的查询获取部件ID,但我需要找到该部件ID的描述,以便将描述放入数据网格中。我试图在Web服务器端使用"Include",但在运行时失败。
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应用于关联,以确保它们被编组到客户端。你可以把这个属性应用到一个'Buddy'类中,这里会讲到。
理论上,直接对生成的实体类中的属性应用IcludeAttribute就足够了。在那里,它们将被覆盖。
下一个选择是在局部类中。在那里添加具有相同签名的另一个属性(以便可以将属性应用于它)将导致与原始属性的冲突。
解决方案是使用在分部类中定义的新类。MetadataType属性用于部分类,以指示定义其元数据的类。
下面的代码将确保在发送到客户端时包含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; }
}
}