有没有办法'加入'两个数据库表,所以我可以从第一个表中获取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;
答案 0 :(得分:1)
我认为您使用的是WCF RIA服务?如果您标记了您的问题以表明这一点,那将会很有帮助。
如果是这种情况,您需要使用Include中的DomainService方法将相关实体包含在查询结果中。
您还需要将IncludeAttribute应用于关联,以确保它们被编组到客户端。您可以将该属性应用于涵盖here的“好友”类。
理论上,将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; }
}
}