В настоящее время я пытаюсь перенести нашу модель из edmx в Code First, но у меня возникли проблемы с заполнением базы данных.
У меня есть эти (упрощенные) объекты:
public class EntityBase
{
public EntityBase()
{
this.OfficeEntities = new HashSet<OfficeEntity>();
}
[Key]
public int Id { get; set; }
public ICollection<OfficeEntity> OfficeEntities { get; set; }
}
public class Office : EntityBase
{
public Office()
{
this.EntityCollection = new HashSet<OfficeEntity>();
}
public ICollection<OfficeEntity> EntityCollection { get; set; }
}
public class Employee : EntityBase
{
// misc properties not in use by the associatio in this example
}
public class OfficeEntity
{
[Key]
public int Id { get; set; }
public int OfficeEntityPositions { get; set; }
public int OfficeId { get; set; }
public int EntityBaseId { get; set; }
public Office Office { get; set; }
public EntityBase Entity { get; set; }
}
IЯ использую эти сущности при попытке заполнить базу данных:
var office = new Office();
var employees = GenerateEmployees(); // A method that simply creates a list of new employee objects
foreach (var employee in employees)
{
office.EntityCollection.Add(new OfficeEntity {Entity = employee, OfficeEntityPositions = 1});
}
DbContext.SaveChanges();
Это только добавит новый офисный объект в базу данных, а все остальное будет пропущено (Сотрудники и OfficeEntitites).Все выглядит хорошо в схеме базы данных, когда дело доходит до отношений FK.
Это, кажется, происходит в другом месте моего заполнения базы данных, где я создаю новые сущности и добавляю в них новые дочерние объекты, где добавляется только родитель:S
Есть идеи, как решить эту проблему?