Entity Framework получает ICollection<int> от картографа
Используя Entity Framework 4.1, пытаясь получить коллекцию целых,
в основном у меня есть сущность под названием Spec
public class Spec {
public int Id{get;set;}
public string Name {get;set;}
public ICollection<int> TypeIds {get;set;}
}
спецификация таблицы имеет идентификатор столбца, имя и т. д., и я пытаюсь сопоставить TypeIds с таблицей SpecTypes с помощью столбца specId TypeId, и я не могу выяснить сопоставления для него
Я связывал что-то вроде этого
modelBuilder.Entity<Spec>().HasMany(r => r.TypesIds)
.WithMany()
.Map(m => m.ToTable("SpecTypes")
.MapLeftKey("SpecId")
.MapRightKey("TypeId"));
2 ответа
Я не думаю, что вы можете иметь свойство навигации к коллекции примитивных значений. Я думаю, что вам просто нужно создать сущность, которая содержит свойство I d и иметь коллекцию из них. Таким образом, у вас будет более или менее что-то вроде этого:
public class Spec {
public int Id{get;set;}
public string Name {get;set;}
public ICollection<TypeEntity> TypeIds {get;set;}
}
public class TypeEntity {
public int Id {get;set;}
}
Исходя из того, что вы описываете, вы, вероятно, захотите установить отношения один-ко-многим, как это. Обычно вам нужно использовать построитель моделей, чтобы решить какое-то сложное отображение, которое вы не можете сделать в определении класса.
public class Spec {
public int Id{get;set;}
public string Name {get;set;}
public SpecType SpecType {get;set;}
}
public class SpecType {
public int Id{get;set;}
public ICollection<Spec> Specs {get;set;}
}