추가 사항이 자식 컬렉션
var phone = new Phone() { //whatever };
var person = new Person() { //whatever };
person.Phones.Add(phone);
var company = new Company() { //whatever };
company.People.Add(person);
dbContext.Companies.Add(company);
dbContext.SaveChanges();
을 만들어 추적합니다 컨텍스트
관계를 정의한 한, 자동으로 다음
은 첫 번째 코드에 대한 예제 등 올바른 외래 키를 설정합니다
public class Company
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id;
// other properties
public virtual Collection<Person> People { get; set; }
}
public class Person
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id;
// Other properties
[ForeignKey("Company")]
public int CompanyId { get; set; }
public virtual Company Company { get; set; }
public virtual Collection<Phone> Phones { get; set; }
}
UPDATE : 방금 먼저 개체를 가져가, 유사한 방식으로 추가 자녀를 추가 할 수 있습니다
var db = new DbContext();
var company = db.Companies.FirstOrDefault(x => x.Id == 1);
if(company != null)
{
var person = new Person() { // blah };
company.People.Add(person);
db.SaveChanges();
}
인스턴스가 '회사'라고 가정하면 'myCompany.Persons.Add (myPerson)'이라고 쓸 수 있습니다. – MikeH
예, 인스턴스가 있습니다. ID가 0 인 경우에도 작동합니까? –
예, 변경 사항을 저장할 때 EF가 키를 처리합니다 – MikeH