EF 4.1 Code First POCOs Библиотека - PullRequest
       12

EF 4.1 Code First POCOs Библиотека

0 голосов
/ 22 августа 2011

Хочу отметить, что я новичок в EF.

Я создаю библиотеку доступа к данным с EF 4.1.

Для каждой сущности у меня есть две таблицы для цели перевода.

ex: Events ==> Event_ar для арабского языка и Event_en для английского.

Первая проблема : у меня возникает ошибка, если я пишу два DbSets одного и того же типа сущности

так что я сделал эту работу, что совсем не приятно:

public class Event_en : Event { }
public class Event_ar : Event { }

public class DB : DbContext
{
    public DbSet<Event_ar> Events_ar { get; set; }
    public DbSet<Event_en> Events_en { get; set; }
}

Я хотел бы знать, есть ли решение для этого?

Второй Имя объекта должно совпадать с именем таблицы, в противном случае у меня будет ошибка.

Пример: "dbo.Event_ar" должен иметь POCO "Event_ar"

Это должно быть имя свойства с тем же именем таблицы.

Здесь: dbo.Events_ar ==> POCO "Events_ar"

Почему я не могу манипулировать именами? Любое решение?

1 Ответ

1 голос
/ 22 августа 2011

Я не уверен, что ваше решение идет в правильном направлении. Неправильно иметь таблицу для каждого языка - вы можете просто добавить еще один столбец в таблицу событий, в котором указано, что это за язык?

Вы можете использовать этот столбец, чтобы получить строку с нужным языком.

Что касается таблиц и имен сущностей POCO, вы можете переопределить таблицу, в которую сопоставляется сущность, с помощью System.ComponentModel.TableAttribute в классе elvel, но для поддержания POCO-сущности мне нравится использовать классы EntityTypeConfiguration и указывать имя таблицы.

например:

public class CurrencyConfiguration : EntityTypeConfiguration<Currency>
    {
        public CurrencyConfiguration()
        {
            this.ToTable("Conv", "Ref");           
        }
    }

Затем вы добавляете его в конструктор моделей в методе переопределения OnModelCreating в DbContext.

public class MyContext : DbContext
{
    public DbSet<Currency> Currencies { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Configurations.Add(new CurrencyConfiguration());           
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...