C# Linq到实体-根据查询语法与方法语法的投影
由于LINQ查询表达式被翻译为“隐藏”以调用相应方法查询将调用的相同方法(至少我认为是这样),因此我希望这两个查询返回相同的类型。但出于某种原因:C# Linq到实体-根据查询语法与方法语法的投影,c#,linq-to-sql,entity-framework-4,linq-to-entities,C#,Linq To Sql,Entity Framework 4,Linq To Entities,由于LINQ查询表达式被翻译为“隐藏”以调用相应方法查询将调用的相同方法(至少我认为是这样),因此我希望这两个查询返回相同的类型。但出于某种原因: var result = from i in db.Invoices select new { i.InvoiceNum }; 在创建匿名类型时,将结果设置为IQueryable 试一试 您将看到它返回您期望的类型。这些类型不相同,第一个是返回匿名类型,要使它们相同,您需要将第一个作为: var result = from
var result = from i in db.Invoices
select new { i.InvoiceNum };
在创建匿名类型时,将结果设置为
IQueryable
试一试
您将看到它返回您期望的类型。这些类型不相同,第一个是返回匿名类型,要使它们相同,您需要将第一个作为:
var result = from i in db.Invoices
select i.InvoiceNum;
在第一条语句中,创建一个匿名类型,其中一个属性名为“InvoiceNum”。这是因为您使用了new{}
语法。该匿名类型不是字符串。等效的方法语法为:
var result = db.Invoices.Select(i => new { i.InvoiceNum });
var result = from i in db.Invoices
select i.InvoiceNum;
var result = db.Invoices.Select(i => new { i.InvoiceNum });