Альтернатива для enum - при заполнении базы данных - PullRequest
1 голос
/ 26 февраля 2012

Я сейчас на стадии разработки нового приложения и провожу некоторые исследования. Я наткнулся на подход CodeFirst в EF 4.3, и он мне действительно понравился.

Однако есть одна цель разработки, я не знаю, как ее достичь.

Допустим, у меня есть класс задачи:

    public class TaskModel
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public TaskType Task { get; set; }
    }

    public enum TaskType
    {
        Sales = 0,
        Marketing = 1,
        CustomerService = 2
    }

Я знаю, что перечисления в настоящее время не поддерживаются в EF 4.3. Следовательно, этот код даже не будет генерировать правильную модель базы данных. Однако мне даже не нужны перечисления. Так как, если пользователь захочет добавить новый TaskType во время выполнения?

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

1 Ответ

1 голос
/ 26 февраля 2012

В этом случае обычно используется отношение один ко многим:

public class TaskModel
{
    public int ID { get; set; }
    public string Name { get; set; }
    public virtual TaskType Task { get; set; }
}

public class TaskType
{
    public int ID { get; set; }
    public string Name { get; set; }
    public virtual ICollection<TaskModel> TaskModels { get; set; }
}
...