powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Связь классов между собой (помогите разобраться)
18 сообщений из 18, страница 1 из 1
Связь классов между собой (помогите разобраться)
    #39530665
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

решил выучить наконец программирование методом тыка

для практики решил реализовать систему формирования табелей рабочего времени

проблемы возникли сразу же

Хочу реализовать класс Division (подразделение организации) и Employee (работник организации)

если говорить на языке баз данных, между ними соотношение один-ко-многим

а как их связать как объекты?
То есть чтобы можно было сделать, грубо говоря
Код: c#
1.
foreach (Employee worker in someDivision)


и при этом чтобы можно было обратиться к функции Employee.ChangeDivision (Division someAntherDivision)

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    class Division {
        int id;
        string name;
    }
    class Employee
    {
        string name;
        string position;
        decimal wagerate;
        }
    }



Вопросы, простите, идиотские
...
Рейтинг: 0 / 0
Связь классов между собой (помогите разобраться)
    #39530672
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fundddа как их связать как объекты?
Если не руками, то взять орм и указать ЕМУ отношение.
Всё.
...
Рейтинг: 0 / 0
Связь классов между собой (помогите разобраться)
    #39530673
WitC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
funddd,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
class Division {
        public int id {get; set;}
        public string name {get; set;}
}

class Employee {
        public string name {get; set;}
        public string position {get; set;}
        public decimal wagerate {get; set;}
        public Division EmplDevision {get; set;}
        //or
        public int EmplDevID {get; set;}
}



это требовалось?
...
Рейтинг: 0 / 0
Связь классов между собой (помогите разобраться)
    #39530674
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу, нет, умоляю, чуть-чуть раскрыть...
Как это делается руками?
И что такое орм?
...
Рейтинг: 0 / 0
Связь классов между собой (помогите разобраться)
    #39530677
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WitC, а как в этом случае организовать перебор Employee, которые принадлежат к someDivision?
...
Рейтинг: 0 / 0
Связь классов между собой (помогите разобраться)
    #39530687
WitC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
funddd,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
using System.Linq;
//=================


var Employees = List<Employee>(new[]{ new Employee() { EmplDevID = 1 }, new Employee() { EmplDevID = 1 },new Employee() { EmplDevID = 2 } });
var EmplInDevision = Employees.Where(empl=>empl.EmplDevID == 1);
foreach(Employee empl in EmplInDevision )
{
Console.WriteLine("EplDevision: {0}", empl.EmplDevID );
}

Cjnsjle.ReadKey();



если надо в подразделении хранить набор сотрудников:
авторclass Division {
int id;
string name;
Employee[] Employees;
}


как-то так...
...
Рейтинг: 0 / 0
Связь классов между собой (помогите разобраться)
    #39530689
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если нужно получить список сотрудников для департамента, то можно их просто отфильтровать через
метод расширение Linq Where:

Код: c#
1.
var someDivisionEmployers = emploers.Where(emp => emp.DisvionId = <DivistionId>);
...
Рейтинг: 0 / 0
Связь классов между собой (помогите разобраться)
    #39530690
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
методом тыка вы далеко не уедите, откройте книги и почитайте, это просто.
видео курсы тоже хорошая штука, но книга запоминается на много лучше (имхо).
тогда не придется задавать такие простые вопросы
...
Рейтинг: 0 / 0
Связь классов между собой (помогите разобраться)
    #39530694
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fundddИ что такое орм?
Библиотека. Делает из базы объекты туда сюда.
...
Рейтинг: 0 / 0
Связь классов между собой (помогите разобраться)
    #39530700
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eак ни странно, я все понял
Спасибо, джентльмены!
PS: Совет читать и смотреть весьма нелишний
...
Рейтинг: 0 / 0
Связь классов между собой (помогите разобраться)
    #39530887
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

"Туда, сюда, обратно, тебе и мне приятно?" (с) Мурзилка =)
...
Рейтинг: 0 / 0
Связь классов между собой (помогите разобраться)
    #39531213
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перешел к практической реализации

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    class Division
    {
        public string Name { get; set; }
        public Employee[] Employees { get; set; }
    }
    class Employee
    {
        public string Name { get; set; }
        public string Position { get; set; }
        public decimal Wagerate { get; set; }
        public Employee (string name, string position, decimal wagerate, Division division)
        {
            this.Name = name;
            this.Position = position;
            this.Wagerate = wagerate;
        }
    }


а как при инициализации Employee добавить в division создающийся объект Employee?
...
Рейтинг: 0 / 0
Связь классов между собой (помогите разобраться)
    #39531219
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точнее, а как при инициализации Employee добавить в division.Employees создающийся объект Employee?
...
Рейтинг: 0 / 0
Связь классов между собой (помогите разобраться)
    #39531962
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще вопрос (на предыдущий уже ответил):
Для использования LINQ обязательно ли вручную составлять коллекцию объектов или есть возможность запросить некий автоматически генерируемый список экземпляров класса?

Задача формирования списка объектов несложная, но если есть возможность переложить ее на автоматику, вероятность ошибки уменьшается в разы :)
...
Рейтинг: 0 / 0
Связь классов между собой (помогите разобраться)
    #39532143
LameUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fundddДобрый день!

решил выучить наконец программирование методом тыка

для практики решил реализовать систему формирования табелей рабочего времени

проблемы возникли сразу же

Хочу реализовать класс Division (подразделение организации) и Employee (работник организации)

если говорить на языке баз данных, между ними соотношение один-ко-многим

а как их связать как объекты?
То есть чтобы можно было сделать, грубо говоря
Код: c#
1.
foreach (Employee worker in someDivision)


и при этом чтобы можно было обратиться к функции Employee.ChangeDivision (Division someAntherDivision)

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    class Division {
        int id;
        string name;
    }
    class Employee
    {
        string name;
        string position;
        decimal wagerate;
        }
    }



Вопросы, простите, идиотские

Я бы вам не советовал "выучивать" язык на псевдо задаче.
Нужна реальная задача (требование, потребность) и на ней уже пытаться что-то сделать (выучить язы вы не сможете и это в какой-то мере бесмысленно, т.к. язык не нужно выучивать а нужно понимать).
В реальном же кейсе, помимо примитивного уловия будут (вы же хотите табель сделать):

1. Декретные отпуска
2. Больничные
3. Работа по совместительству (это про вашу связь один ко многим)
4. Обычные отпуска
5. История работы сотрудника (он может в одном месяце работать на разных должностях в случаях перевода из одного подразделения в другое) + увольнения
6. Командировки
7. Повышение квалификации (обучение за счет работадателя)
и т.д.
...
Рейтинг: 0 / 0
Связь классов между собой (помогите разобраться)
    #39532504
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fundddЗадача формирования списка объектов несложная, но если есть возможность переложить ее на автоматику, вероятность ошибки уменьшается в разы :)
Именно. Я тебе предлагал сделать именно от базы.
Справочник дней рождения из 2-3 таблицы.
Классы будут автоматом от маппинга.
...
Рейтинг: 0 / 0
Связь классов между собой (помогите разобраться)
    #39532590
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LameUser, на самом деле задача вполне себе из реальной жизни.
Полный перечень классов и их полей значительно шире :)

Petro123, в примерах и самоучителях часто используется Entity Framework (System.Data.Entity), ОРМ это что-то похожее?
...
Рейтинг: 0 / 0
Связь классов между собой (помогите разобраться)
    #39532609
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funddd,
Это оно.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Связь классов между собой (помогите разобраться)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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