asp.net mvc3 Entity Framework искать - PullRequest
1 голос
/ 29 марта 2012

У меня есть приложение с таблицей состояния, см. Рекомендации по работе с базами данных - Статус для примера

Я хочу показать историю изменений статуса.Есть два способа увидеть, как реализовать его с помощью mvc3 и такой модели сущностей: http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

Я всегда могу просто иметь свойство StatusID для любого объекта, который должен быть связан с таблицей состояния, например,

Работа
ID
Имя
StatusID

Статус
ID Статус

Или я мог быиметь таблицу StatusHistory и сделать свойство StatusID функцией, возвращающей объект Status, например,

Job
ID
Имя

Status
ID Status

StatusHistory
ID
JobID
StatusID
Date

и в классе модели заданий (Job.cs) иметь функцию с именем Status, которая возвращает 1 объект Status, запрашивая у таблицы StatusHistory последний объект состояния, относящийся к заданию.

Кто-нибудь делал что-то подобное?

Ответы [ 2 ]

0 голосов
/ 29 марта 2012

у вас может быть

StatusHistory

  • ID
  • JobID
  • StatusID
  • Дата

в то время как задание содержит текущий StatusID .

Работа

  • ID
  • StatusID (последний)

таким образом вы "кэшируете" последний статус задания вместо поиска ..

StatusHistories.OrderDescending(s => s.Date).FirstOrDefault(); //unnecessary task

каждый раз, когда вам это нужно.

0 голосов
/ 29 марта 2012

То, что вы ищете, это Временная база данных .Практически вместо того, чтобы хранить кучу кодов состояния, вы разбиваете логику на конвейер дат.Например, дата начала работы, дата окончания работы.Готовые задания должны быть перенесены в какой-то момент в архив, чтобы поддерживать чистоту вашей базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...