Entity framework 4 我是否需要.SaveChanges()来获取外键的ID?
在下面的代码中,我保存了一个新的人,然后抓取该人的id作为关联地址记录中的FK。PK定义为数据库中的标识列。我的问题是,我需要调用dc.SaveChanges()吗;将人物添加到对象集中后?是否有任何方法可以避免访问db以获取ID,然后将其作为FK传递给地址?我可以将两个savechanges()滚动到一个操作中吗Entity framework 4 我是否需要.SaveChanges()来获取外键的ID?,entity-framework-4,Entity Framework 4,在下面的代码中,我保存了一个新的人,然后抓取该人的id作为关联地址记录中的FK。PK定义为数据库中的标识列。我的问题是,我需要调用dc.SaveChanges()吗;将人物添加到对象集中后?是否有任何方法可以避免访问db以获取ID,然后将其作为FK传递给地址?我可以将两个savechanges()滚动到一个操作中吗 PlaygroundEntities dc = new PlaygroundEntities(); Person person =
PlaygroundEntities dc = new PlaygroundEntities();
Person person = new Person
{
FirstName = txtFirstName.Text,
LastName = txtLastName.Text
};
dc.People.AddObject(person);
dc.SaveChanges();
Address address = new Address
{
PeopleId = person.Id,
Address1 = txtAddress.Text,
City = txtCity.Text,
State = txtState.Text,
ZipCode = txtZipCode.Text
};
dc.Addresses.AddObject(address);
dc.SaveChanges();
只要person.Id是自动生成的密钥,就无法在没有查询的情况下检索person.Id。 但是,如果获取person.Id的目的只是创建地址,则不需要为person.Id添加地址,只需添加地址为的person,如下所示:
Person person = new Person
{
FirstName = txtFirstName.Text,
LastName = txtastName.Text,
Address = new Address
{
Address1=txtAddress.Text,
City=txtCity.Text,
State=txtState.Text,
ZipCode=txtZipCode.Text
}
}
dc.People.AddObject(person);
dc.SaveChanges();
就这样
Person person = new Person
{
FirstName = txtFirstName.Text,
LastName = txtLastName.Text
};
Address address = new Address
{
People = person,
Address1 = txtAddress.Text,
City = txtCity.Text,
State = txtState.Text,
ZipCode = txtZipCode.Text
};
dc.Addresses.AddObject(address);
dc.SaveChanges();
根据您的示例,不是保存和添加id,而是添加对象引用,然后保存一次