Entity Framework и Модели с Простыми Массивами - PullRequest
3 голосов
/ 04 мая 2011

Это мой модельный класс.

public class Lead
{
    private readonly ObservableCollection<String> m_tags = new ObservableCollection<string>();

    public int LeadId { get; set; }
    public string Title { get; set; }
    public ObservableCollection<String> Tags { get { return m_tags; } }

}

Предлагает ли Entity Framework способ представить это с помощью Model-First или Code-First?

РЕДАКТИРОВАТЬ: я ищу способ сделать это без изменения публичного API модели. Тот факт, что есть какая-то таблица тегов, не должен быть виден последующему разработчику.

1 Ответ

4 голосов
/ 04 мая 2011

Поскольку ваша модель должна быть представлена ​​реляционным способом, вы можете использовать только примитивные типы (которые имеют эквивалент в БД SQL) или другие сущности в определении сущности - это означает, что теги представлены их собственной сущностью.В вашем случае было бы что-то вроде этого с использованием подхода Code first:

public class Lead
{
    public int LeadId { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Tag> Tags { get; set; }
}

public class Tag
{
    public int TagId { get; set; }
    public string Name { get; set; }
}

public class SomeContext : DbContext
{
    public DbSet<Lead> Leads { get; set; }
    public DbSet<Tag> Tags { get; set; }
}

Это (по умолчанию) будет представлено в базе данных в виде таблицы Leads, таблицы Tags и таблицы отношений LeadTags, которые толькосодержит {LeadId, TagId} пар.

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