C# Linq用于连接两个表的实体

C# Linq用于连接两个表的实体,c#,linq-to-entities,C#,Linq To Entities,有没有办法“连接”两个DB表,这样我就可以从第一个表中获取ID,然后使用此ID从第二个表中获取描述 例如,follow查询获取零件ID,但我需要找到该零件ID的描述,以便将描述放到数据网格中。我尝试在Web服务器端使用“Include”,但在运行时失败 var query = myContext.Get_Table1(); query = query.Where(c => c.Part_ID == '12345'); LoadOperation<My.Web.Table1> l

有没有办法“连接”两个DB表,这样我就可以从第一个表中获取ID,然后使用此ID从第二个表中获取描述

例如,follow查询获取零件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;
var query=myContext.Get_Table1();
query=query.Where(c=>c.Part_ID=='12345');
LoadOperation loadOp=this.maxContextTransactionHistory.Load(查询,QueryCompletedCallback,null);
this.dataGrid.ItemsSource=loadOp.Entities;

我认为您正在使用WCF RIA服务?如果您在问题上加了标记以表明这一点,这会很有帮助

如果是这种情况,则需要在查询中使用方法将相关实体包括在查询结果中

您还需要将应用于关联,以确保它们被封送到客户端。您可以将该属性应用于所涵盖的“Buddy”类

理论上,将IcludeAttribute直接应用于生成的实体类中的属性就足够了。在那里,它们将被覆盖

下一个选择是在部分课程中。在那里添加具有相同签名的另一个属性(以便将属性应用于该属性)将导致与原始属性冲突

解决方案是使用在分部类中定义的新类。MetadataType属性用于分部类,以指示定义其元数据的类

以下代码将确保零件库存的零件表在发送到客户机时包含在内。您将需要类似的代码来涵盖您感兴趣的任何其他属性

[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; }
    }
}
[MetadataTypeAttribute(typeof(Part_Stock.Metadata))]
公共部分类零件库存
{
内部密封类元数据
{
//元数据类并不意味着要实例化。
私有元数据()
{
}
[包括]
public EntityCollection Stock_表{get;set;}
}
}

我认为您正在使用WCF RIA服务?如果您在问题上加了标记以表明这一点,这会很有帮助

如果是这种情况,则需要在查询中使用方法将相关实体包括在查询结果中

您还需要将应用于关联,以确保它们被封送到客户端。您可以将该属性应用于所涵盖的“Buddy”类

理论上,将IcludeAttribute直接应用于生成的实体类中的属性就足够了。在那里,它们将被覆盖

下一个选择是在部分课程中。在那里添加具有相同签名的另一个属性(以便将属性应用于该属性)将导致与原始属性冲突

解决方案是使用在分部类中定义的新类。MetadataType属性用于分部类,以指示定义其元数据的类

以下代码将确保零件库存的零件表在发送到客户机时包含在内。您将需要类似的代码来涵盖您感兴趣的任何其他属性

[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; }
    }
}
[MetadataTypeAttribute(typeof(Part_Stock.Metadata))]
公共部分类零件库存
{
内部密封类元数据
{
//元数据类并不意味着要实例化。
私有元数据()
{
}
[包括]
public EntityCollection Stock_表{get;set;}
}
}

非常感谢您的帮助。我将“Include()”添加到实体文件中,但我不知道如何将“IncludeAttribute”部分添加到哪个文件(metadata.cs文件)?您能否提供添加IncludeAttribute部分的更多详细信息?谢谢你的帮助。这是“Include()”部分:返回This.ObjectContext.part_Stock.Include(“part_Table”).Include(“part_Table.part_Description”);非常感谢您的帮助。我将“Include()”添加到实体文件中,但我不知道如何将“IncludeAttribute”部分添加到哪个文件(metadata.cs文件)中?能否提供添加IncludeAttribute部分的更多详细信息?感谢您的帮助。这是“Include()”部分:返回This.ObjectContext.part_Stock.Include(“part_Table”)。Include(“part_Table.part_Description”);