Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从EF中的join语句返回一级结果列表_C#_Asp.net_Vb.net_Entity Framework_Linq To Sql - Fatal编程技术网

C# 从EF中的join语句返回一级结果列表

C# 从EF中的join语句返回一级结果列表,c#,asp.net,vb.net,entity-framework,linq-to-sql,C#,Asp.net,Vb.net,Entity Framework,Linq To Sql,我有以下简单的join语句: Dim result = (From PropertyDefinition In econtext.PropertyDefinitions Join ProductDef In econtext.ProductPropertyValues On PropertyDefinition.PropertyDefID Equals ProductDef.ProductPropDefID

我有以下简单的join语句:

Dim result = (From PropertyDefinition In econtext.PropertyDefinitions
              Join ProductDef In econtext.ProductPropertyValues
                On PropertyDefinition.PropertyDefID Equals ProductDef.ProductPropDefID
              Where ProductDef.ProductID = 1
              Select ProductDef,
                     PropertyDefinition.PropertyDefName,
                     PropertyDefinition.PropertyDefName2,
                     PropertyDefinition.PropertyDefIIsDeleted).list()
如果我明确地将所有列包含在ProductDef下,它会起作用,并且结果出现在一个列表中,那么当前ProductDef的结果出现在一个单独的列表中:

我需要ProductDef中的所有内容,以及PropertyDefinition中的一些内容,但不需要在嵌套列表中


如何在一次列表中获得结果,而不需要显式地包括ProductDef的所有列?

我认为您不能

您将
ProductDef
作为嵌套对象,因为这正是您在指定
ProductDef
作为要返回的值之一时所要求的:对象本身,而不是其任何属性

您想要的似乎是SQL Server的
table1.*
语法,用于请求返回给定表的所有列,还可能返回其他值。但我认为林克不存在这种情况

您可以使用动态数据类型来实现这一点,但老实说,列出您想要的所有属性会更简单


ETA:或者,您可以创建另一个具有所需所有属性的类型,并创建一个构造函数,该构造函数采用
ProductDef
PropertyDefinition
并填充构造函数参数中的所有字段。这将为您提供一个具有您想要的所有属性的对象。但这肯定是更多的工作

像这样:
选择ProductDef.ProductPropValueID、ProductDef.ProductID、ProductDef.ProductPropDefID等
而不仅仅是
选择ProductDef
@GertArnold,这里的问题不同,我没有对返回的数据进行自定义,我只有PropertyDefinition的两个属性和ProductDef的25个属性,用代码一个接一个地编写它真的很痛苦。我看不出有什么显著的区别。你想做的事做不到。LINQ中的SELECT*没有等价物。确切地说,我需要它,就像SQL Server返回一样,问题是,我第一个只有两个属性,第二个只有25个属性,在代码中一个接一个地编写它真的很痛苦。出于好奇,在创建了这个匿名类型之后,你打算如何处理它?27属性很难显示,所以我假设您正在用它做其他事情。产品管理页面,我想在一个查询中收集所有需要的信息,然后从客户端级别的网格中访问,我这样做是为了减少不必要的数据库请求。