powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / EF не простое условие Where
9 сообщений из 9, страница 1 из 1
EF не простое условие Where
    #38367042
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые, подскажите пожалуйста.
Есть вот такая связка EF:
ctx.Table1.Include("Table2").Where(i => (i.Type == 0 || i.Type == 2)).ToList();

как можно в условие добавить какие то условия по полям второй таблицы?
...
Рейтинг: 0 / 0
EF не простое условие Where
    #38367232
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
ctx.Table1.Include("Table").Where(i => (i.Type == 0 || i.Type == 2) && i.Table2.Field1 == "xxxx").ToList();


FK должно быть создано Table=>Table2
...
Рейтинг: 0 / 0
EF не простое условие Where
    #38367234
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

тоесть в условии можно указывать лишь поля, по которым между ними есть ключ?
...
Рейтинг: 0 / 0
EF не простое условие Where
    #38367262
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, EF построит сам взаимосвязи между таблицами и создаст их наименование в контексте , если между ними есть связь по ключевому полю в FK

т.е.

есть у нас условно 2 таблички
Table1(id int PK, name varchar(10))
Table2(id2 int PK, table1Id int FK, desc varchar(10))

Table2 связана с Table1 по FK. мы можем делать такую выборку

select T1.id, T2.desc from Table1 T1 INNER JOIN Table2 T2 ON T1.id = T2.table1Id
where T2.desc LIKE 'foo%'

using System.Linq;
var t = db.Table1.Include("Table2").Where(x => x.Table2.desc.StartsWith("foo")).ToList();
...
Рейтинг: 0 / 0
EF не простое условие Where
    #38367278
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

Странно, связка у них есть, и Include сам по себе срабатывает, но вот почему то добавить в условие какое либо поле из второй таблицы не получается - не отображаются они в списке полей (после Table2.)
...
Рейтинг: 0 / 0
EF не простое условие Where
    #38367280
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
открывайте edmx и смотрите что там у вас
...
Рейтинг: 0 / 0
EF не простое условие Where
    #38367310
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

а на что там обратить внимание?
...
Рейтинг: 0 / 0
EF не простое условие Where
    #38367319
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Table1 - Routers, Table2 - Interfaces
...
Рейтинг: 0 / 0
EF не простое условие Where
    #38367353
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
            using (var db = new DBContext())
            {
                var query = db.Routers.Include(x => x.Interfaces).ToList();

	   //смотрите что в объекте query
	}
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / EF не простое условие Where
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]