Linq to Sql Enums и условный оператор - PullRequest
1 голос
/ 01 февраля 2009

Какой бы способ я ни делал, кажется, что-то идет не так, когда используется условный оператор для значений перечисления в Linq to Sql. Например

var ret = from listings in db.Listings
  select new Listing
   {
   ID = listings.ID,
   //etc
   OrderStatus = listings.OrderItems.Count > 0 
   ? listings.OrderItems.First().Order.OrderStatus : OrderStatus.NotCheckedOut
};

System.Data.SqlClient.SqlException: Преобразование не удалось при преобразовании Значение nvarchar 'Charged' для типа данных ИНТ ..

Когда я покидаю поле enum, когда nvarchar отображается в строку, я получаю похожие ошибки преобразования. Как обойти это?

1 Ответ

1 голос
/ 01 февраля 2009

Это работает, может быть, есть лучший способ?

var ret = from listings in db.Listings
let ordS = listings.OrderItems.Count > 0 ? 
                        listings.OrderItems.First().Order.OrderStatus.ToString() : OrderStatus.NotCheckedOut.ToString()
  select new Listing
   {
   ID = listings.ID,
   //etc
   OrderStatus = (OrderStatus)Enum.Parse(typeof(OrderStatus), ordS)
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...