Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 27
1

Не могу понять, что это за реализация ORM и как это работает

28.06.2016, 19:16. Просмотров 669. Ответов 1
Метки нет (Все метки)


Есть проект на C#, есть база данных MSSQL, есть код, который позволяет мне добавлять и удалять данные из базы данных (без создания и удаления таблиц).
Я не могу понять, как это все работает с друг другом.
Реализация базы данных в данном проекте представляет из себя совершенно не понятную для меня вещь, опыта работы с ними очень мало, и до поры до времени я даже не знал о существовании такой вещи, как ORM. Натолкнулся, понял, что БД вроде как из этой оперы, но по коду не похоже на распространенные фреймворки (Entity\Hibernate). Думаю, что чудище самописное от предыдущего программера.
Не думаю, что правильно будет скидывать весь код, его там много, но может быть кто-нибудь сможет что-то подсказать или увидеть знакомые вещи.

Код для создания одной из таблиц в БД:
Кликните здесь для просмотра всего текста

SQL
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
CREATE TABLE [dbo].[PatientStructure](
    [ID_Structure] [SMALLINT] NOT NULL,
    [DotNet_FullName] [VARCHAR](MAX) NOT NULL,
    [ShortName] [VARCHAR](12) NOT NULL,
    [LongName] [VARCHAR](MAX) NOT NULL,
    [UnitOfMeasure] [VARCHAR](MAX) NULL,
 CONSTRAINT [PK_PatientsStruct] PRIMARY KEY CLUSTERED 
(
    [ID_Structure] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[PatientsPropertys]    Script Date: 03/14/2013 19:11:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[PatientsPropertys](
    [ID_Property] [BIGINT] IDENTITY(1,1) NOT NULL,
    [ID_Object] [BIGINT] NOT NULL,
    [ID_Structure] [SMALLINT] NOT NULL,
    [VALUE] [varbinary](MAX) NOT NULL,
 CONSTRAINT [PK_PatientsData] PRIMARY KEY CLUSTERED 
(
    [ID_Property] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[Patients]    Script Date: 03/14/2013 19:11:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Patients](
    [ID_Object] [BIGINT] IDENTITY(1,1) NOT NULL,
    [ID_Node] [BIGINT] NOT NULL,
 CONSTRAINT [PK_Patients] PRIMARY KEY CLUSTERED 
(
    [ID_Object] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO


Я толком даже понять не могу, где именно в итоге сохраняется информация, которую я скидываю в БД.
В коде есть ряд enum-ов, в которые я могу добавлять названия сохраняемых параметров и дальше через (вероятно) самописные классы в БД добавлять.

Может кто-то может подсказать хотя бы названия вещей, которые стоит погуглить, т.е какие паттерны применяются, когда нужны такие БД, где программист может связать enum со столбцами в БД?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.06.2016, 19:16
Ответы с готовыми решениями:

Не могу понять, как это работает
Привет друзья. Хочу разобраться, как определяется связь между положением курсора и типом...

Не могу понять как это работает?
.positioner:after { content:''; display: table; clear: both; } Кто может объяснить...

Не могу понять как это работает, создание объекта без new
<?php class MyClass { const CONST_VALUE = 'Значение константы'; } $classname = 'MyClass';...

Подскажите что делать. Знаю что надо перегрузить оператор но никак не могу понять как это сделать
#include "stdafx.h" #include <iostream> #include <conio.h> #include <Windows.h> #include...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы С#-разработчиков‌
1
696 / 553 / 247
Регистрация: 04.08.2015
Сообщений: 1,524
28.06.2016, 20:20 2
Цитата Сообщение от Mernion Посмотреть сообщение
есть база данных MSSQL
Вы привели код на T-SQL, и спрашиваете, что это такое? Или у вас другая проблема?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.06.2016, 20:20

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Не могу понять, что это значит: while(i<10/2)
/*обращение массива*/ #include &lt;stdio.h&gt; main() { int p,i=0; static a={10,11,12,13,14, ...

Люди не могу понять что это?
Яву учу где-то 3 месяца уже и вот столкнулся вот с таким не понятным примеров : Есть 3 класса...

Не могу понять что это за ошибка
Не могу понять что это за ошибка , появилась после перезапуска Unity

Никак не могу понять что это
#include &lt;iostream&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;rus&quot;); double...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.