Отображение нескольких таблиц в один объект в Entity Framework - PullRequest
0 голосов
/ 20 марта 2012

В базе данных веб-сайта, над которой я работаю, есть две таблицы, например: Country & CountryLocale.Две таблицы содержат следующие столбцы:

Страна: Id, Долгота, Широта CountryLocale: Id, CountryId, CountryName, CultureId

Что я хочу:
- Когда я получаю странуЯ хочу, чтобы сущность содержала: CountryId, CountryName, CultureId, Latitude & Longitude.
- Когда я создаю новую страну, нужно вставить одну запись в таблицу Country, а другую - в таблицу CountryLocale.
- Когда я создаюновая локаль страны, для создания записи только внутри CountryLocale

и т. д. *

Это достижимо?Спасибо

Ответы [ 2 ]

1 голос
/ 20 марта 2012

Вы можете использовать разделение сущностей, чтобы частично достичь этого.CountryLocale будет использовать PK Country в качестве PK.Вы не можете вставить в CountryLocale без Country.По сути, это одна сущность, разделенная на несколько таблиц.

    modelBuilder.Entity<Country>()
        .Map(mc =>
        {
            mc.Properties(n => new
            {
                n.Id,
                n.Longitude,
                n.Latitude
            });
            mc.ToTable("Country");
        })
        .Map(mc =>
        {
            mc.Properties(n => new
            {
                n.CountryName,
                n.CultureId
            });
            mc.ToTable("CountryLocale");
        });
0 голосов
/ 20 марта 2012

использовать дискриминатор (таблица на иерархию)

modelBuilder.Entity<CountryBase>()
    .Map<Country>(c => c.Requires("Type").HasValue((int)CountryType.Country))
    .Map<CountryLocale>(c => c.Requires("Type").HasValue((int)CountryType.CountryLocale));

и вы можете определять свои дочерние объекты так, как вам нравится

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