我有查询:
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中进行简单的连接和选择,但不知道如何获得查询中提到的选择。
我正在使用EF
答案 0 :(得分:1)
鉴于使用LINQ无法实际执行string
到datetime
转换作为数据库查询的一部分,建议您使用AsEnumerable
来切换上下文在内存中运行实际转换的列表
orders.Take(50)
.AsEnumerable()
.Select(x => new {
OrderDate = x.OrderDate.Date,
SerialNumbers = o.SerialNumbers ?? "",
SourceOrderNumber = o.SourceOrderID.ToString()
});
答案 1 :(得分:-1)
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进行测试的,而不是实体框架,它有一段历史,无法做Linq2SQL多年来一直在做的事情。