Я встречаюсь с некоторыми особенностями с LINQ to SQL.Особенности LINQ to SQL
С относительно простого запроса, я хочу, чтобы выбрать несколько полей, но имеют поля даты в формате в виде строки, которые я сначала достигли, как это:
var list = dataContext.MyLists.Single(x => x.ID == myId);
var items = from i in list.MyItems
select
new
{
i.ID,
i.Sector,
i.Description,
CompleteDate = i.CompleteDate.HasValue ? i.CompleteDate.Value.ToShortDateString() : "",
DueDate = i.DueDate.HasValue ? i.DueDate.Value.ToShortDateString() : ""
};
Позже я попробовал следующий запрос, который точно так же, за исключением того, что я запрашивая прямо из моего DataContext, а не элемент в моем первом запросе:
var items = from i in dataContext.MyLists
select
new
{
i.ID,
i.Sector,
i.Description,
CompleteDate = i.CompleteDate.HasValue ? i.CompleteDate.Value.ToShortDateString() : "",
DueDate = i.DueDate.HasValue ? i.DueDate.Value.ToShortDateString() : ""
};
первый работает нормально, но второй запрос дает:
Не удалось перевести выражение «...» в SQL и не может рассматривать его как локальное выражение.
Если я удалю строки, которые форматируют дату, она отлично работает. Если я удалю проверку .HasValue, он также отлично работает, пока не будет нулевых значений.
Любые идеи?
Энтони
Кажется, у вас есть два совершенно разных запросов. Один выбирает из MyItems в объекте MyList. Второй - выбор из объектов MyList (а не MyItems). Являются ли типы данных одинаковыми для обоих? Это довольно сложно отладить, не зная, что такое структуры таблицы. – Bryant 2008-10-02 16:06:48