如何在 LINQ 中使用 CAST、CONVERT 和 isNULL?
How to use CAST,CONVERT and isNULL in LINQ?
我有疑问:
SELECT TOP 50 CONVERT(date, o.OrderDate)as OrderDate,ISNULL(rd.SerialNumbers,'') as SerialNumbers,CAST(o.SourceOrderID as varchar(50)) as SourceOrderNumber
From Orders o
已针对问题编辑查询。
var lq= (
from o in db.Orders
select new {,o.Name, o.Company, o.Address, o.Address2, o.City, o.State, o.Country, o.Email, o.Zip, o.Phone, o.ShipName, o.ShipCompany, o.ShipAddress, o.ShipAddress2, o.ShipCity, o.ShipCountry, o.ShipState, o.ShipPhone, o.ShipZip, o.OrderNumber, o.ShippingTotal }
).ToList();
我可以在 LINQ 中进行简单的连接和 select,但不知道如何像查询中提到的那样获得 select。
我正在使用 EF
鉴于无法使用 LINQ 实际执行 string
到 datetime
的转换作为数据库查询的一部分,建议您使用 AsEnumerable
切换上下文列出 运行 内存中的实际转换
orders.Take(50)
.AsEnumerable()
.Select(x => new {
OrderDate = x.OrderDate.Date,
SerialNumbers = o.SerialNumbers ?? "",
SourceOrderNumber = o.SourceOrderID.ToString()
});
LINQ2SQL 实际上足够聪明来处理代码中的解析:
var q = from c in Customers
where c.PhoneNumber == "9075556658"
select new
{
SSN = c.SSN,
DOB = DateTime.Parse(c.BirthDate)
};
q.Dump();
我只是 运行 在我自己的数据库上的 LinqPad 中,它运行良好。
注意:这是用 Linq2SQL 测试的,而不是 Entity Framework,它有无法做 Linq2SQL 多年来一直在做的事情的历史。
我有疑问:
SELECT TOP 50 CONVERT(date, o.OrderDate)as OrderDate,ISNULL(rd.SerialNumbers,'') as SerialNumbers,CAST(o.SourceOrderID as varchar(50)) as SourceOrderNumber
From Orders o
已针对问题编辑查询。
var lq= (
from o in db.Orders
select new {,o.Name, o.Company, o.Address, o.Address2, o.City, o.State, o.Country, o.Email, o.Zip, o.Phone, o.ShipName, o.ShipCompany, o.ShipAddress, o.ShipAddress2, o.ShipCity, o.ShipCountry, o.ShipState, o.ShipPhone, o.ShipZip, o.OrderNumber, o.ShippingTotal }
).ToList();
我可以在 LINQ 中进行简单的连接和 select,但不知道如何像查询中提到的那样获得 select。
我正在使用 EF
鉴于无法使用 LINQ 实际执行 string
到 datetime
的转换作为数据库查询的一部分,建议您使用 AsEnumerable
切换上下文列出 运行 内存中的实际转换
orders.Take(50)
.AsEnumerable()
.Select(x => new {
OrderDate = x.OrderDate.Date,
SerialNumbers = o.SerialNumbers ?? "",
SourceOrderNumber = o.SourceOrderID.ToString()
});
LINQ2SQL 实际上足够聪明来处理代码中的解析:
var q = from c in Customers
where c.PhoneNumber == "9075556658"
select new
{
SSN = c.SSN,
DOB = DateTime.Parse(c.BirthDate)
};
q.Dump();
我只是 运行 在我自己的数据库上的 LinqPad 中,它运行良好。
注意:这是用 Linq2SQL 测试的,而不是 Entity Framework,它有无法做 Linq2SQL 多年来一直在做的事情的历史。