powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / IEqualityComparer
4 сообщений из 4, страница 1 из 1
IEqualityComparer
    #37845772
Erik_Kartmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сравнить разные объекты в join . Как можно?

---------------------------------------------------------
SET @@verSION = 'Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) Feb 9 2007 22:47:07 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 6.0 (Build 6002: Service Pack 2) '
...
Рейтинг: 0 / 0
IEqualityComparer
    #37845773
Erik_Kartmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
через интерфейс?
...
Рейтинг: 0 / 0
IEqualityComparer
    #37845777
Erik_Kartmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
определить у обоих классов одинаковые члены, по которым сравнивать, и в IEqualityComparer работать с интерфейсом?
...
Рейтинг: 0 / 0
IEqualityComparer
    #37849603
Erik_Kartmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что делать? Я сдался! есть таблица с неск. ключами.
определил интерфейс, описывающий ключи.
И на его основе сделал компарер:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    public class ListSpr_ZakComparer : IEqualityComparer<ITableKay>
    {

        public bool Equals(ITableKay x, ITableKay y)
        {
            return (x.FK_Filial == y.FK_Filial && x.FK_Table == y.FK_Table);
        }

        public int GetHashCode(ITableKay obj)
        {
            return obj.FK_Table.GetHashCode();
        }
    }


примерно так использую
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
          var list_req = q
                .Join(
                (m_dc.ListSpr.Join(m_dc.GetTable<UsrList>().AsEnumerable(), x => x.FK_UserList, y => y.CodeUser, (x, y) => new{x,y}).AsEnumerable())
                ,

                 x => (ITableKay )x,
                 y => (ITableKay )y.x,

                 (x, y) =>
                    new 
                    {
                        x,y
                    }
                    , new ListSpr_ZakComparer()
                ).ToList();
            return list_req;


авторНеподдерживаемая перегрузка, используемая для оператора запроса "Join".
Всё перечитал, даже примерчики посмотрел, вроде этих
http://stackoverflow.com/questions/1671208/how-to-do-a-custom-compare-for-every-item-in-a-intersect-of-two-collections
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / IEqualityComparer
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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