Работа с таблицей только для чтения без первичного ключа в Entity Framework - PullRequest
1 голос
/ 25 июня 2019

Работа с клиентом, который имеет базу данных только для чтения и таблицу, у которой нет первичного ключа. Я пытаюсь сравнить одну таблицу "item" (имеет основной элемент) с "Pics" [без ключа], чтобы получить результаты для "item" с изображениями. Независимо от того, есть ли у каждого предмета изображение в «Картинках». Я не могу редактировать сами базы данных в SQL.

Моя конечная цель - вернуть результаты, в которых есть только фотографии.

Я пытался использовать необработанный SQL-запрос, а затем преобразовать его в IQueryable, однако это не позволяет мне искать элементы с использованием других параметров и является ОЧЕНЬ медленным. (вероятно, в таблице «item» более 75 столбцов и более 10000 элементов). Я могу только выяснить, как использовать запрос с помощью SELECT *.

Контроллер:

entities db = new entities();

var results = (from s in db.items
                           select s);

...

var Pics = db.Database.SqlQuery<Item>(
"SELECT * FROM dbo.Pics
AS p JOIN dbo.item
AS i ON 
i.item = p.item
WHERE p.Pic = 'Yes'").AsQueryable(); 

...

results = Pics;

...

return View(results);

1 Ответ

0 голосов
/ 25 июня 2019

Попробуйте это

var results = from i in db.items
              join p in db.Pics
              on i.item equals p.item
              where p.Pic == "Yes"
              select i;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...