С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C# Определить количество повторений каждой из цифр 1,2...9 в числе N^N Определить количество повторений каждой из цифр 1,2...9 в числе N^N(N в степени N), N от 1 до 1000 Нашёл на С++, но оно не работает после 15. собственно вот: double N; int count = new int; for (int i=0;i<10; i++) { count=0; } https://www.cyberforum.ru/ csharp-beginners/ thread1351582.html Программирование с использованием строк (обычный вариант и с использованием 3 видов строк C#
Программирование с использованием строк (обычный вариант и с использованием 3 видов строк Даны два числа: N1 и N2, и две строки: S1 и S2. Получить из этих строк новую строку, объединив N1 первых символов строки S1 и N2 последних символов строки S2.
C# Оцените консольную игру Консольная игра, летает самолетик, убивает всякие бяки. Управление: движение - стрелочки стрельба - пробел магазин - 1 вкл./выкл. доп. вооружения если куплено - TAB И сразу вопрос для знающих, в игре есть основной цикл где все происходит, сначала к таймеру плюсуется единичка, а потом пошли все операции: движение, стрельба, прорисовка и т.д. Понятно что на машинах с разной вычислительной... https://www.cyberforum.ru/ csharp-beginners/ thread1351542.html C# Возникли сложности при написании программы https://www.cyberforum.ru/ csharp-beginners/ thread1351499.html
Задача: Дана двумерная квадратная матрица. Получить массив b1 …bn , где bi - это сумма элементов, расположенных за первым отрицательным элементом в i-той строке (если все элементы строки неотрицательны, то принять bi=100). class Program { static void Matrix(string a, int mas) { Console.WriteLine(a); for (int i = 0; i < mas.GetLength(0); i++) ...
Даны натуральные числа а, b. Найти все четные числа промежутка C#
Даны натуральные числа а, b. Найти все четные числа промежутка. Помогите пожалуйста срочно нужно З.ы. Заранее спасибо .
C# Какой тип должен быть у массива цветов? https://www.cyberforum.ru/ csharp-beginners/ thread1351425.html
каким типом должен быть массив цветов? Color myColor{Color.Aqua,Color.Pink,Color.Yellow};
C# Вычисление частных производных HELP!!! Есть у кого нибудь код для вычисления частных производных на С# https://www.cyberforum.ru/ csharp-beginners/ thread1351404.html C# Робота List<string>
Доброе время суток. Мне нужно было перенести данные с DataGridView в массив, для этого я выбрала List, для того, чтобы в будущем, можно было обратится конкретным элементам массива. Для этого я создала массив массивов, занесла все данные, но когда питаюсь вывести вместо значений выводит "System.Collections.Generic.List`1", в чем моя ошибка? List<string> arr = new List<string>();...
C# алгоритм поиска и выборки Сгенерировать n строк длины от 1 до m (n и m вводятся с клавиатуры), выбрать все строки, длина которых превышает среднюю длину строк списка, упорядочить строки по длине, в полученной выборке найти строку, содержащую количество символов равных числу введенному пользователем (вывести строку, либо сообщение об отсутствии). С помощью алгоритма последовательного поиска Помогите кто чем может... https://www.cyberforum.ru/ csharp-beginners/ thread1351396.html C# Напечатать слова, встречающиеся в каждом из двух заданных предложений https://www.cyberforum.ru/ csharp-beginners/ thread1351381.html
Напечатать слова,встречающиеся в каждом из двух заданных предложениях. Нужно решить через тип String,Char, и StringBuilder
Дана строка. Указать слова в этой строке, содержащие хотябы одну букву "к" C#
Дана строка.Указать слова в этой строке,содержащие хотя бы одну букву к. Нужно решить с помощью типа String,Char и StringBuilder.
C# Как записать в файл список, состоящий из массива байтов? https://www.cyberforum.ru/ csharp-beginners/ thread1351367.html
Как записать в фаил список состоящий из массива байтов?
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
13.01.2015, 11:36 0

Реализация шаблонного метода интерфейса - C# - Ответ 7099434

13.01.2015, 11:36. Показов 3038. Ответов 18
Метки (Все метки)

Лучший ответ Сообщение было отмечено Metall_Version как решение

Решение

Segat, нет я имел ввиду как раз репу дженерик, где каждый метод работы с хранинилещем описывается один раз, не нужно для каждой сущности его писать..
вот нашел в закромах старенькую репу,
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
public class Repository<TEntity> : IRepository<TEntity> where TEntity : BaseEntity
    {
        private readonly DbContext _context;        //контекст, предоставляет доступ к базе данных
        private readonly DbSet<TEntity> _dbSet;     //представляет таблицу из базы - одну определенную сущность
 
        /// <summary>
        /// Создание хранилища
        /// </summary>
        public Repository(DbContext dbContext)
        {
            _context = dbContext;
            _dbSet = _context.Set<TEntity>();
        }
 
        #region IRepository
 
        /// <summary>
        /// Сохранение новой записи в хранилище(если id = 0), или обновление уже существующей
        /// </summary>
        /// <param name="entity">Сущность которую нужно внести в базу, или обновить</param>
        public TEntity SaveOrUpdate(TEntity entity)
        {
            if (entity.Id == 0) return _dbSet.Add(entity);
 
            _dbSet.Attach(entity);
            _context.Entry(entity).State = EntityState.Modified;
 
            return entity;
        }
 
        /// <summary>
        /// Удалить сущность из хранилища
        /// </summary>
        public void Remove(TEntity entity)
        {
            _dbSet.Remove(entity);
        }
 
        /// <summary>
        /// Удалить список сущностей из хранилища
        /// </summary>
        public void RemoveRange(IEnumerable<TEntity> entity)
        {
            _dbSet.RemoveRange(entity);
        }
 
        /// <summary>
        /// Получить сущность по id
        /// </summary>
        public TEntity Get(int id)
        {
            return _dbSet.FirstOrDefault(v => v.Id == id);
        }
 
        /// <summary>
        /// Найти одну сущность по заданому предикату
        /// </summary>
        /// <param name="predicate">Предикат поиска</param>
        public TEntity FindOne(Expression<Func<TEntity, bool>> predicate)
        {
            return _dbSet.SingleOrDefault(predicate);
        }
 
        /// <summary>
        /// Найти все сущности по заданому предикату
        /// </summary>
        /// <param name="predicate">Предикат поиска</param>
        public IQueryable<TEntity> FindAll(Expression<Func<TEntity, bool>> predicate)
        {
            return _dbSet.Where(predicate);
        }
 
        /// <summary>
        /// Получить все сущности данного типа из хранилища
        /// </summary>
        public IQueryable<TEntity> All()
        {
            return _dbSet;
        }
 
        /// <summary>
        /// Сохранить изменения в хранилище
        /// </summary>
        public void SaveChanges()
        {
            try
            {
                _context.SaveChanges();
            }
            catch (DbEntityValidationException dbValidEx) //отлавливаем ошибки валидации в базе
            {
                throw new DataException(dbValidEx.Message, dbValidEx);
            }
            catch (DataException dataEx)                    //отлавливаем ошибки из базы
            {
                throw new DataException(dataEx.Message, dataEx);
            }
            catch (Exception ex)                            //отлавливаем остальные ошибки
            {
                throw new Exception(ex.Message, ex);
            }
        }
        #endregion
 
        /// <summary>
        /// Освобождение всех ресурсов
        /// </summary>
        public void Dispose()
        {
            _context.Dispose();
        }
    }


как видно ограничение стоит по базовой сущности, репа писалась для EF codefirst, базовая сущность там класс с одним полем ID (грубо говоря), от этого класса все остальные наследуются

а вот сам интерфейс
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 /// <summary>
    /// Определяет методы для универсального хранилища данных, типа TEntity
    /// </summary>
    /// <typeparam name="TEntity">Тип сущности хранилища</typeparam>
    public interface IRepository<TEntity> : IDisposable where TEntity : class 
    {
        TEntity SaveOrUpdate(TEntity entity);
 
        void Remove(TEntity entity);
 
        void RemoveRange(IEnumerable<TEntity> entity);
 
        TEntity FindOne(Expression<Func<TEntity, bool>> predicate);
 
        TEntity Get(int id);
 
        IQueryable<TEntity> FindAll(Expression<Func<TEntity, bool>> predicate);
 
        IQueryable<TEntity> All();
 
        void SaveChanges();
    }


Добавлено через 6 минут
а пользоваться ей вот так
C#
1
2
3
4
            using (var repa = new Repository<SomeClass1>(context))
            {
                repa.SaveOrUpdate(new SomeClass1());
            }
Добавлено через 53 секунды
где context это контекст от EF, производный от DbContext

Вернуться к обсуждению:
Реализация шаблонного метода интерфейса C#
1
Заказать работу у эксперта
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.01.2015, 11:36
Готовые ответы и решения:

Реализация шаблонного интерфейса
public interface IPresenter { IView View { get; set; } IModel Model { get; set; } }...

Реализация метода интерфейса
Всем доброго времени суток. При попытке запуска выдает ошибку что не реализован метод getLen. я...

Почему не компилируется реализация обобщенного метода интерфейса?
Здравствуйте у меня есть интерфейс IRecord и никак не могу реализовать её в классе AccountRecord...

Различная реализация метода при наследовании интерфейса
Создаю класс который наследую от интерфейса. В классе есть private массив с параметрами и допустим...

18
13.01.2015, 11:36
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.01.2015, 11:36
Помогаю со студенческими работами здесь

Реализация интерфейса
При помощи интерфейса вычислить корень числа введенного с клавиатуры.

реализация интерфейса
&quot;ConsoleApplication2.Fib&quot; не реализует член интерфейса...

Реализация интерфейса
Написал пример из книги O'Reilly Learning C# 3.0 Chapter 18 создание File-Copier. Все сделал &quot;по...

Реализация интерфейса
Здравствуйте! Имеется один интерфейс и 2 класса наследника. using System; using...

0
Блоги программистов
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­­­­­­­­­­­­­­­­­­­­­­­х­р­о­н­­н­­­ы­­й счётчик с управляющим сигналом зад
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru