приведение с помощью linqToEntity (Esql) - PullRequest
1 голос
/ 25 августа 2011

мой код:

public List<Book> GetBook(string NameField, object Value)
    {
        var queryESQL = @"select VALUE Book from Book
                 where Cast(Book." + NameField + " as string) like '%M%'";
        var query = this.Entities.CreateQuery<Book>(
                  queryESQL);
        return query.ToList();
    }

ошибка:

Тип 'строка' не найден. Убедитесь, что необходимые схемы загружены и что пространства имен импортированы правильно. Рядом тип имя, строка 2, столбец 51.

обновление:

новый код:

public List<Book> GetBook(string NameField, object Value)
    {
        var queryESQL = @"select VALUE Book from Book
                 where Cast(Book." + NameField + " as EDM.string) like '%M%'";
        var query = this.Entities.CreateQuery<Book>(
                  queryESQL);
        return query.ToList();
    }

ошибка:

Type 'EDM.string' could not be found. Make sure that the required schemas are loaded and that the namespaces are imported correctly. Near type name, line 2, column 51.

Ответы [ 2 ]

8 голосов
/ 17 ноября 2011

Метод CreateQuery<> использует типы CLR вместо типов EDM, поэтому в запросе используйте System.String вместо EDM.String.

2 голосов
/ 25 августа 2011

Используйте Edm.String вместо string при сотворении.

...