Я следую первому прохождению кода EF6 и попытался немного адаптировать его для своего собственного проекта, но столкнулся с проблемой при заполнении базы данных инициализатором.
Я создал 2 класса:
Режим свойства:
namespace MyApp.Models
{
public class Property
{
public int ID { get; set; }
public string PropertyName { get; set; }
public virtual PropertyType PropertyType { get; set; }
}
}
и режим типа свойства:
namespace MyApp.Models
{
public class PropertyType
{
public int ID { get; set; }
public string Type { get; set; }
public ICollection<Property> Properties { get; set; }
}
}
Насколько я понимаю, между этими 2 существует отношение «один ко многим». Свойство может быть только 1 типа свойства, но многие свойства могут иметь одинаковые типы свойств?
Однако, когда я пытаюсь инициализировать контекст и заполнить базу данных (используя приведенный ниже код), я получаю сообщение об ошибке:
public class MyAppInitializer : System.Data.Entity.DropCreateDatabaseIfModelChanges<MyAppContext>
{
protected override void Seed(MyAppContext context)
{
var propertytypedata = new List<PropertyType>
{
new PropertyType {ID = 1, Type="Villa" },
new PropertyType {ID = 2, Type="Apartment" }
};
propertytypedata.ForEach(p => context.PropertyType.Add(p));
context.SaveChanges();
var propertydata = new List<Property>
{
new Property {PropertyName="Property 1", PropertyType=1, }
};
propertydata.ForEach(p => context.Property.Add(p));
context.SaveChanges();
}
}
Проблема в том, что когда я пытаюсь установить тип свойства для свойства, которое я заполняю, он говорит:
Невозможно неявно преобразовать тип "int" в "MyApp.Models.PropertyType"
PropertyType=1,
. PropertyType — это сложный объект, а не целое число. - person Martin Dawson   schedule 02.08.2016