Невозможно преобразовать IQueryable ‹T› AsEnumerable, потому что T имеет свойство Guid

У меня есть следующий класс EF:

class Product
{
   public Guid ProductGuid { get; set; }
   public string ProductName { get; set; }
}

производный от класса БД, где ProductGuid - уникальный идентификатор, а ProductName - nvarchar.

Рассмотрим productContext как контекст:

var products = productContext.Products;
productList = products.ToList(); 

OR

productList = products.AsEnumerable(); 

Первая инструкция выполняется правильно, вторая (обе) запускает исключение во время выполнения (компилируется правильно):

Невозможно привести тип System.Guid к типу System.Object. LINQ to Entities поддерживает только приведение примитивных типов модели данных сущности.

Все перепробовал не работает. У меня есть другие таблицы с полем Guid, но он никогда не запускает такое исключение. Что может быть причиной?


person CiccioMiami    schedule 23.05.2012    source источник


Ответы (1)


Вам действительно нужно использовать тип GUID в этом свойстве? В любом случае, струна не сделает это за вас?

попробуйте заменить GUID. используйте вместо этого String.

person Pepito Fernandez    schedule 23.05.2012
comment
Я не могу, во-первых, я использую .NET 3.5, поэтому я не могу использовать ни ToString (), ни функции sql (доступные в .net 4.0) в LINQ to Entities. Я могу использовать ToString (), если конвертирую IQueryable в IEnumerable, но это самая проблема - person CiccioMiami; 23.05.2012