Entity SQL не работает, если файл EDMX в другом проекте

Я пытаюсь использовать Enitity SQL для запроса данных, но если файл edmx в другом проекте, будет сгенерировано исключение. Ниже мои тестовые шаги.

  1. Создайте проект библиотеки классов и добавьте в него файл edmx, создайте из базы данных.

  2. Создайте консольное приложение, добавьте в него проект библиотеки классов и скопируйте файл app.config в этот проект.

  3. Напишите код, как показано ниже

    using (NorthwindEntities context = new NorthwindEntities())
    {
        string queryString = @"SELECT VALUE cus 
                               FROM NorthwindEntities.Customers AS cus 
                               WHERE cus.ID > 10";
        ObjectQuery<Customers> cusQuery = 
            context.CreateQuery<Customers>(queryString);
        List<Customers> cusList = cusQuery.ToList();
    }
    

Когда я запускаю проект консольного приложения, возникает исключение: "ID" не является членом типа "NorthwindModel.Customers" в загруженных в настоящий момент схемах ".

Кажется, что схема не загружена в проект, у кого-нибудь есть идеи? Дополнительный вопрос: в этом запросе я выбираю все свойства этого типа, если я выбираю только некоторые из свойств, как вернуть анонимный тип ObjectQuery?

Любые предложения приветствуются.

1 ответ

Это не проблема EF.

Вы написали оператор SQL вручную, вы не используете определение таблицы, которое находится в файле EDMX.

Если вы попытаетесь выполнить инструкцию SQL в запросе SQL Server, вы также увидите, что она также не работает.

Попробуйте что-то вроде этого:

var cus = from customers in context.Customers select customers;
var cusList = cus.ToList();
Другие вопросы по тегам