在 LINQ 中仅选择定义的列



我正在编写一个简单的LINQ查询。表结构定义如下:

表 A

Id int,
VName varchar2(20),
VAddress varchar2(200)

表 B

Id int,
NName varchar2(20),
NAddress varchar2(200)

LINQ查询

 from c in A 
  join x in B on c.Id equals x.Id
     order by A.Id 
     select New{
            c.Id,
            x.NName
     }

然后 SQL 生成为

  select Filter1.Id,Filter1.NName from(
    Select Extend1.Id,Extend1.VName,Extend1.VAddress,
           Extend2.Id as Id1,Extend2.NName,Extend2.NAddress
      from A as Extend1 Inner Join B as Extend2 on Extend1.Id=Extend2.ID)
   as Filter1

我的问题:我不希望在子查询中选择很多列。

如果您真的担心性能,那么只需使用普通SQL...它总是比Linq快(根据我的个人经验)。此外,您可以尝试使用此Linq来执行SQL

IEnumerable<YourDataType> result = DataContext.ExecuteQuery<YourDataType>(SqlString);

您可以从 MSDN 的DataContext.ExecuteQuery<TResult> Method (String, Object[])页面找到更多信息。请注意,此页面与此方法的不同重载有关,但其中包含示例。

最新更新