Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Способы убрать типизацию


Автор: Red Wind 22.5.2010, 20:11
Доброго времени суток.
Есть метод, который используя linq2sql удаляет запись из бызы. Вызов метода:
dal.DeleteEntity<User, UserDto>(userDto);
Код

        public void DeleteEntity<TEntity, TDto>(TDto dto)
            where TEntity : class, IEntity
            where TDto : class, IDtoBase
        {
            _dalDataContext.GetTable<TEntity>().DeleteOnSubmit(GetEntityById<TEntity>(dto.Id));
            _webGameDataContext.SubmitChanges();
        }


Посоветуйте как лучше убрать двойную типизацию. То есть сделать так:
dal.DeleteEntity<UserDto>(userDto);
Или даже так:
dal.DeleteEntity(userDto);
Пока на ум приходит какой-нибудь Dictionary. Но мне эта идея не нравиться.
Спасибо.

Добавлено через 2 минуты и 45 секунд
Кстати, под убиранием типизации я имел в виду не переписывание логики конкретно этого метода, а какой-ниубдь более менее универсальный способ.

Автор: Ram1reS 24.5.2010, 09:20
Код

public void DeleteEntity<TEntity>(int dtoId)
            where TEntity : class, IEntity
        {
            _dalDataContext.GetTable<TEntity>().DeleteOnSubmit(GetEntityById<TEntity>(dtoId));
            _webGameDataContext.SubmitChanges();
        }

//........

DeleteEntity<Customer>(customerDto.Id);

Автор: Red Wind 25.5.2010, 23:45
Ram1reS
Цитата(Red Wind @  22.5.2010,  20:11 Найти цитируемый пост)
под убиранием типизации я имел в виду не переписывание логики конкретно этого метода, а какой-ниубдь более менее универсальный способ.

Тк у меня ещё есть как минимум методы update, insert, GetById, List. И вообще вопрос, скорее теоретический. А код для примера.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)