EF Code First: добавление дочерних сущностей в новую сущность - PullRequest
1 голос
/ 25 ноября 2011

В настоящее время я пытаюсь перенести нашу модель из 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

Есть идеи, как решить эту проблему?

...