|
Entity Framework(Model first)
|
|||
---|---|---|---|
#18+
Всем доброго утра кто нибуть может подсказать каким образом сделать модель исходя из следующих требований: регистрация заявок и сохранение истории при изменении. т.е. необходима система учета обращений если делать без Entity Framework то я делал так: Заявки CREATE TABLE dbo.Requests ( Id INT IDENTITY, RequestId INT NOT NULL, Registered DATETIME NOT NULL, Author NVARCHAR(MAX) COLLATE Cyrillic_General_CI_AS NOT NULL, Phone NVARCHAR(MAX) COLLATE Cyrillic_General_CI_AS NOT NULL, UnitId INT NOT NULL, PostId INT NOT NULL, EquipmentId INT NOT NULL, Description NVARCHAR(MAX) COLLATE Cyrillic_General_CI_AS NOT NULL, Closed DATETIME NULL, CONSTRAINT PK_Requests PRIMARY KEY (Id), CONSTRAINT KEY_Requests UNIQUE (RequestId), CONSTRAINT FK_Requests_Equipments_Id FOREIGN KEY (EquipmentId) REFERENCES dbo.Equipments (Id), CONSTRAINT FK_Requests_Posts_Id FOREIGN KEY (PostId) REFERENCES dbo.Posts (Id), CONSTRAINT FK_Requests_Units_Id FOREIGN KEY (UnitId) REFERENCES dbo.Units (Id) ) ON [PRIMARY] GO ИсторияЗаявок CREATE TABLE dbo.RequestsHistory ( Id INT IDENTITY, RequestId INT NOT NULL, StateId INT NOT NULL, StageId INT NOT NULL, PerformerId INT NOT NULL, Comment NVARCHAR(MAX) COLLATE Cyrillic_General_CI_AS NOT NULL, Creator INT NOT NULL, Created DATETIME NOT NULL, CONSTRAINT PK_RequestsHistory PRIMARY KEY (Id), CONSTRAINT FK_RequestsHistory_Requests_RequestId FOREIGN KEY (RequestId) REFERENCES dbo.Requests (RequestId), CONSTRAINT FK_RequestsHistory_StagesRequest_Id FOREIGN KEY (StageId) REFERENCES dbo.StagesRequest (Id), CONSTRAINT FK_RequestsHistory_StatesRequest_Id FOREIGN KEY (StateId) REFERENCES dbo.StatesRequest (Id) ) ON [PRIMARY] GO Добавление заявки происходило через транзакцию.т.е. сначала я добавлял запись в заявки затем в историю и при отсутствии ошибок делал комит иначе же откатывал. При редактировании данной заявки я получал номер заявки, заполнял/редактировал поля необходимые для истории: Описание полей для истории StateId - состояние заявки; StageId - этап выполнения; Performer - назначенный исполнитель; Comment - какой то коментарий; каким образом сделать так же через EF/либо кто то может подсказать как сделать иначе(например потому что это правильней) P.S.: во вложении картинка со схемой бд. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2014, 06:42 |
|
Entity Framework(Model first)
|
|||
---|---|---|---|
#18+
неужели никто не может подсказать?! если данный подход совсем недееспособный то может кто подскажет как организовать иначе!? смысл в следующем.необходимо организовать систему приема и учета заявок с сохранение промежуточных этапов жизни заявки. подумав сделал через WinForm, сейчас хочу попробовать это переделать на веб интерфейс.застопорился на том как сделать создание/редактирование заявки с сохранением части информации в другой таблице,не знаю как сделать представление при такой схеме. используется ASP.NET MVC(версии 3) Visual Studio 2012 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2014, 12:21 |
|
Entity Framework(Model first)
|
|||
---|---|---|---|
#18+
bald56rus, а при чем тут EF? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2014, 12:26 |
|
Entity Framework(Model first)
|
|||
---|---|---|---|
#18+
хороший вопрос, Entity Framework для реализации модели в проекте(по крайней мере я так это вижу), может я чего то не понимаю и поэтому задаю вопрос неподобающим образом.т.е. я начинаю изучать ASP.NET MVC для создания модели базы данных использую данный фреймворк.в дальнейшем данную модель буду использовать в приложении.я не могу реализовать сущность исходя из приведенной схемы базы данных: т.е. сущность должна быть одна(как я понимаю) Заявка(Request) но часть информации должна храниться в другой таблице(HistoryRequest) - история изменений заявки.это возможно реализовать или данный подход неверен.вопрос то у меня заключается в этом ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2014, 13:17 |
|
Entity Framework(Model first)
|
|||
---|---|---|---|
#18+
bald56rus, у Вас есть база и Вы хотите сгененировать по ней набор сущностей? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2014, 14:46 |
|
Entity Framework(Model first)
|
|||
---|---|---|---|
#18+
да, Базу я разрабатывал сторонними средствами(dbForge studio for SQL).в принципе можно базу сделать и заново если так будет правильней. смысл что у меня не получается реализовать сущность которая будет позволять хранить часть информации в одной таблице а часть в другой притом связь между ними одна-ко-многим.(одна заявка-много состояний) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2014, 14:50 |
|
Entity Framework(Model first)
|
|||
---|---|---|---|
#18+
Хм... Код: c# 1. 2. 3. 4.
Только зачем искать историю вместе с Request? Да, можно сделать Lazy, но зачем Request-у "знать", что по нему какая-то история сохраняется? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2014, 15:03 |
|
Entity Framework(Model first)
|
|||
---|---|---|---|
#18+
искать таскать ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2014, 15:10 |
|
Entity Framework(Model first)
|
|||
---|---|---|---|
#18+
bald56rus, а вообще не обязательно использовать Entity Framework при изучении ASP.NET MVC. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2014, 15:12 |
|
Entity Framework(Model first)
|
|||
---|---|---|---|
#18+
покажу классы которые у меня есть: Request Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
HistoryRequest Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
изучать что то лучше(имхо) на каком то конкретном примере а не абстрактном для себя выбрал пример реализация системы приема/учета заявок, может и не обязательно использовать EF просто все инструкции которые мне попадались на глаза использовали данную технологию, ну и я решил что в принципе знания лишними не бывают.при реализации этого же примера в WinForms я работал через ADO.NET запросы к базе данных напрямую, сейчас вот хотелось попробовать иначе(через EF) да и учет заявок наверно было бы лучше реализовать через веб технологии чем через формы skyANAТолько зачем искать историю вместе с Request?история это неотъемлемая часть любой заявки.и необходимо получать история для дальнейшего анализа ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2014, 15:30 |
|
Entity Framework(Model first)
|
|||
---|---|---|---|
#18+
skyANA, кажется я осмыслил что я делал не так.не могли бы Вы подсказать как переопределить связь между след. сущностями: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
и Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
как определить связь между ними по полю RequestId(1 Request - Many Histories) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2014, 06:56 |
|
Entity Framework(Model first)
|
|||
---|---|---|---|
#18+
bald56rus, добавляете к модели новый класс например: RequestAndHistory, прописываете в нем все свойства, которые необходимо отображать юзеру. Затем создаете метод например: public IEnumerable<RequestAndHistory> GetRequestAndHistory(int requestId) { List<RequestAndHistory> items = new List<RequestAndHistory>(); // Здесь формируем этот список на основе линк-запросов к EF модели. Пишем какойнить хитрый джоин. return items; } Второй вариант - сделать на уровне БД представления под все это дело и их перетащить в модель EF. Ну и конечно можно все на хранимках написать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2014, 11:03 |
|
|
start [/forum/topic.php?fid=17&fpage=17&tid=1349667]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
80ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 203ms |
0 / 0 |