Entity Framework 4.1 Code-First и вставка новых отношений «один ко многим»

У меня возникли проблемы с привязкой нового графа объектов к контексту с помощью отношения «один ко многим». Я использую выпуск Entity Framework 4.1 и реализую подход Code-First. Я использую существующую базу данных SQL 2008 и реализовал контекст, производный от DbContext. У меня два класса: Person и Address. Человек может содержать 0 или более Адресов, определенных как таковые.

public class Person 
    {
        public Person()
        {
            Addresses = new List<Address>();
        }

        public int PersonId { get; set; }
        ***Additional Primitive Properties***

        public virtual ICollection<Address> Addresses { get; set; }

    }

public class Address 
    {
        public int AddressId { get; set; }
        public int AddressTypeId { get; set; }
        ***Additional Primitive Properties***

        public int PersonId { get; set; }
        public virtual Person Person { get; set; }
    }

Я пытаюсь создать новый экземпляр Человека с двумя адресами. Однако, когда я добавляю эту структуру в контекст и сохраняю, сохраняется только первый адрес в коллекции. Второй имеет свойство навигации Person, равное null, и не связан с объектом Person, однако первый в списке связан.

var person = new Person();

var mailingAddress = new Address() { AddressTypeId = 1 };
person.Addresses.Add(mailingAddress);

var billingAddress = new Address() { AddressTypeId = 2 };
person.Addresses.Add(billingAddress);

context.People.Add(entity);
context.SaveChanges();

Он не вызывает исключения, но второй элемент в коллекции Address является просто не спасены.

Есть ли у кого-нибудь хорошие идеи, почему только первый будет спасен? Спасибо.

8
задан connr 23 June 2011 в 20:37
поделиться