powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ простейший вопрос
7 сообщений из 7, страница 1 из 1
LINQ простейший вопрос
    #36360236
Dima Freger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго всем вечера. Я новичок в Линк и у меня простейший вопрос.

У меня есть отношение 1 ко многим. Делаю через визуальный редактор связь по полю т.е. поставщик имеет много контактных персон. Все работает супер, но есть небольшой нюанс.

Дело к том что в таблице контактных персон представлены контактные персоны как поставщиков так и клиентов. Поле kenn = 1 значит это контактная персона клиента и kenn = 2 контактная персона поставщика.

Вопрос:

Как наложать ограничение, чтобы выбиралось автоматом только для конкретного поставщика только те персоны, которые имеют kenn = 2.

Спасибо за ответы!
...
Рейтинг: 0 / 0
LINQ простейший вопрос
    #36360246
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот статейка . Там внизу параграф Build Specific Department Query. Добавьте там условие Where(a=>a.kenn == 2)
Хотя с точки зрения архитектуры наверное это не совсем верно.
...
Рейтинг: 0 / 0
LINQ простейший вопрос
    #36360718
Dima Freger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, но честно говоря не догнал:

У меня идет так запрос

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
IEnumerable<Supplier> Suppliers = context.ExecuteQuery<Supplier>("SELECT * FROM fli WHERE liefnr = {0}", activeRowid);

                foreach (Supplier sup in Suppliers)
                {
                  if (sup.ContactPerson.Count > 0)
                  {
                    IEnumerable<ContactPerson> sp = (from con in sup.ContactPerson where con.kennung == 2 select con);
 
                  }
               }


но мне то надо чтобы выборка была уже только с теми людьми которые имеют con.kennung = 2
...
Рейтинг: 0 / 0
LINQ простейший вопрос
    #36360725
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Freger,

лезешь руками в схему и правишь Association на нужный тебе.
...
Рейтинг: 0 / 0
LINQ простейший вопрос
    #36360923
Dima Freger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению так не получается.

Код: plaintext
1.
2.
3.
4.
[Association(Name="Supplier_ContactPerson", Storage="_ContactPerson", ThisKey="liefnr,1", OtherKey="feld, kennung")]




При компиляции все становится на свой места

Код: plaintext
1.
2.
[Association(Name="Supplier_ContactPerson", Storage="_ContactPerson", ThisKey="liefnr", OtherKey="feld")]

...
Рейтинг: 0 / 0
LINQ простейший вопрос
    #36361510
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В cs файле модели находишь сущность Поставщик и его свойство контактные персоны .
И у геттера ставишь этот фильтр.
Вот как в примере по ссылке:

Код: plaintext
1.
2.
3.
4.
5.
6.
   1. public IQueryable<DeptBusiness> BusinessDepartments  
   2. {  
   3.  get  
   4.  {  
   5.    return this.Departments.CreateSourceQuery().OfType<DeptBusiness>();  
   6.  }  
   7. }  
...
Рейтинг: 0 / 0
LINQ простейший вопрос
    #36362505
Dima Freger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое за помощь.

Я сделал так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
[Association(Name="Supplier_ContactPerson", Storage="_ContactPerson", ThisKey="liefnr", OtherKey="feld")]
public EntitySet<ContactPerson> ContactPerson
{
get
{
                EntitySet<ContactPerson>  ContactPersons= new EntitySet<ContactPerson>();


                var suppliers = from c in this._ContactPerson
                           where c.kennung == 2
                           select c;

                foreach (var c in suppliers )
                    ContactPersons.Add(c);

                return ContactPersons;
}
set
{
this._ContactPerson.Assign(value);
}
}


Вроде как работает!

Единственное думаю, что если начну снова работать с редактором, то все енто мое по_ерится....
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ простейший вопрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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