Этот запрос LINQ возвращает IQueryable<T>
. IQueryable<T>
является интерфейсом, а List<T>
не реализует его, поэтому нет никакой возможности, чтобы базовая конкретная реализация была List<T>
(однако, она реализует IEnumerable<T>
, поэтому приведение к нему было бы допустимым). Даже если это было бы небезопасно, так как пользователи .NET могут захотеть когда-нибудь изменить базовую реализацию, и ваш состав будет нарушен. Не очень хорошая идея, даже если это сработало изначально.
Вы можете позвонить ToList()
на возвращаемое значение запроса LINQ:
var CustomerFromWash = (from p in _NorthWindDataContext.Customers
join q in _NorthWindDataContext.Orders
on p.CustomerID equals q.CustomerID
where p.Region == "WA"
select new
{
CustomerName =Convert.ToString(p.CompanyName),
CustomerID = Convert.ToString(p.CustomerID),
OrderId = Convert.ToString(q.OrderID),
OrderDate = Convert.ToString(q.OrderDate),
}).ToList();
Даже тогда, когда вы выбираете коллекцию анонимных типов, а не CustInformation
объектов. Если вы хотите, чтобы CustInformation
объекты были возвращены, вам нужно:
select new CustInformation
{
// set properties here
}