Entity Framework CTP5 (Code First) Моделирование — таблицы поиска

Предположим следующую структуру таблицы:

Таблицы:

**Tasks**
taskID int PK
taskName varchar

**Resources**
resourceID int PK
resourceName varchar

**Assignments**
assignmentID int PK
taskID int FK
resourceID int FK

Таблица назначений связывает задачу с назначенным ей ресурсом. Можно ли сопоставить эту структуру с построителем модели, чтобы мне не приходилось создавать класс poco Assignment, скрывая часть базовой структуры данных?

I.E.:

public class Task
{
    public int taskID { get; set; }
    public string taskName { get; set; }

    public virtual ICollection<Resource> resourceItems { get; set; }
}

public class Resource
{
    public int resourceID { get; set; }
    public string resourceName { get; set; }
}

Как я могу использовать построитель моделей для сопоставления задач с ресурсами без создания класса poco назначения?


person Chris Klepeis    schedule 22.02.2011    source источник


Ответы (1)


Вот статья как раз об этом.

Редактировать, у меня нет IDE передо мной, так что это может быть не точный «последний» синтаксис, но он должен помочь вам начать:

modelBuilder.Entity<Task>().HasMany(a => a.Resources).WithMany(b => b.Tasks).Map(m => 
{ 

  m.MapLeftKey(a => a.TaskId,"taskId");

  m.MapRightKey(b => b.ResourceId, "resourceId");

  m.ToTable("Assignments"); 

});
person mxmissile    schedule 22.02.2011
comment
В этой статье EF делает это в файлах ssdl и csdl. Мне нужно знать, как отобразить его в коде с помощью построителя моделей. Возможно, я не совсем ясно выразился в своем вопросе, что я использую подход «сначала код» в CTP5. Я обновил свой заголовок. - person Chris Klepeis; 22.02.2011