В переопределении метода «Seed» DatabaseInitializer я добавил некоторые элементы в контекст, но я получаю ошибки ссылочной целостности, которые, как я полагаю, добавляются в базу данных в неправильном порядке. Как определяется порядок?
Я могу добавить элементы в базу данных с помощью необработанного SQL после того, как база данных была сгенерирована, поэтому я не думаю, что с данными что-то не так.
* 1005 Е.Г. *
new List<PropertyType>
{
new PropertyType {Name = "Text"},
new PropertyType {Name = "Colour"},
new PropertyType {Name = "Image"}
}.ForEach(e => context.PropertyTypes.Add(e));
base.Seed(context);
new List<Property>
{
new Property {Name = "font", PropertyTypeId = 1},
new Property {Name = "colour", PropertyTypeId = 2},
new Property {Name = "background-image", PropertyTypeId = 3}
}.ForEach(e => context.Properties.Add(e));
base.Seed(context);
Я могу запустить первое семя самостоятельно, и оно работает. Второе начальное число вызывает ошибку ссылочной целостности. Совершенно простые отношения.
public class Property
{
[Key]
public int PropertyId { get; set; }
[Required, StringLength(100)]
public string Name { get; set; }
[Required]
public int PropertyTypeId { get; set; }
public PropertyType PropertyType { get; set; }
}
public class PropertyType
{
[Key]
public int PropertyTypeId { get; set; }
[Required, StringLength(50)]
public string Name { get; set; }
public IList<Property> Properties { get; set; }
}