Entity Framework получает ICollection <int>от картографа - PullRequest
2 голосов
/ 07 февраля 2012

используя Entity Framework 4.1, пытаясь получить коллекцию целых чисел,

в основном у меня есть объект с именем Spec

public class Spec {
   public int Id{get;set;}
   public string Name {get;set;}
   public ICollection<int> TypeIds {get;set;} 
}

в таблице Specs есть идентификатор столбца, имя и т. Д., И япытаюсь сопоставить TypeIds с таблицей SpecTypes с помощью столбца specId TypeId, и я не могу выяснить сопоставления для него

Я связывал что-то вроде этого

modelBuilder.Entity<Spec>().HasMany(r => r.TypesIds)
       .WithMany()
       .Map(m => m.ToTable("SpecTypes")
          .MapLeftKey("SpecId")
          .MapRightKey("TypeId"));

Ответы [ 2 ]

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

Исходя из того, что вы описываете, вы, вероятно, захотите установить отношения один-ко-многим, как это. Обычно вам нужно использовать построитель моделей, чтобы решить какое-то сложное отображение, которое вы не можете сделать в определении класса.

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;}
}
1 голос
/ 07 февраля 2012

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

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;} 
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...