使用ASP.Net/C#与MVC4和EF 5.我有一个基本模型,其中几个其他模型通过id链接。例如
public class Person
{
public int Id { get; set; }
public DateTime? Created { get; set; }
public DateTime? Submitted { get; set; }
public DateTime? Finalized { get; set; }
public string UserProfileSite { get; set; }
public int UserId { get; set; }
public virtual ICollection<Demographic> Demographics { get; set; }
public virtual ICollection<Demographic> Demographics { get; set; }
}
人口统计信息与personId有一个外键。当他们添加一个人时,他们会被发送以填写人口统计信息。然而,由于人口统计信息具有personId的外键,我需要创建人员记录。
我可以在进入人口统计数据视图之前创建此人,如下所示:
Person person = new Person();
person.UserId = curuser.UserId;
person.UserProfileSite = curuser.Site;
person.Created = DateTime.Now;
db.Persons.Add(person);
db.SaveChanges();
如何获取刚保存到数据库中的记录的personId,以便将其传递给我的人口统计数据,以便模型具有personId的外键?
答案 0 :(得分:13)
假设你没有在实体框架中转换changeTracking,你应该能够在将对象保存到数据库后简单地获取对象的id
Person person = new Person();
person.UserId = curuser.UserId;
person.UserProfileSite = curuser.Site;
person.Created = DateTime.Now;
db.Persons.Add(person);
db.SaveChanges();
var personId = person.Id;