Картографическая производственная база данных - PullRequest
2 голосов
/ 31 июля 2010

Я только что завершил отображение 100 ~ таблиц из нашей производственной базы данных Oracle.По пути я заметил, что многие отношения не были модельными.В основном внешние ключи.

Должен ли я изменить свои сопоставления, чтобы включить соответствующие отношения?Или я должен сохранить отображение, чтобы оно отражало базу данных на 100%?

Я больше склоняю карту к соответствующим соотношениям, чтобы уточнить, как таблицы связаны друг с другом.Вот пример того, что я имею в виду.

[ActiveRecord("Incident")]
public class Incident : ActiveRecordBase<Incident>
{
    [PrimaryKey("IncidentId")]
    public int IncidentId { get; set; }

    [Property(Column = "CustomerOut")]
    public int CustomersOut { get; set; }

    [Property(Column = "DistrictNumber")]
    public int DistrictNumber { get; set; }
}

[ActiveRecord("District")]
public class District : ActiveRecordBase<District>
{
    [PrimaryKey("DistrictNumber")]
    public int DistrictNumber { get; set; }

    [Property(Column = "DistrictName")]
    public string DistrictName { get; set; }
}

Как вы можете видеть, столбец DistrictNumber из таблицы инцидентов не является отношением FK (BelongsTo), хотя я считаю, что так и должно быть.

Ответы [ 3 ]

1 голос
/ 01 августа 2010

Я уже ответил на ваш вопрос здесь несколько дней назад о том, что нужно делать: отобразите отношения как правильные отношения .

1 голос
/ 01 августа 2010

Конечно, вы должны отобразить отношения, как они есть в БД. Используя ORM, например NHibernate, вы получаете много, полностью и правильно отображая БД!

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

1 голос
/ 31 июля 2010

Я бы включил де соответствующие отношения.

С этим вы можете полностью использовать nhibernate, например, сопоставление с all-delete-orphan . NHibernate будет обрабатывать все дочерние элементы для вас, без этого вы должны написать собственный код для удаления дочерних записей.

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

...