获取模型的记录ID只保存到数据库MVC4 ASP.Net

时间:2013-02-21 16:45:27

标签: entity-framework asp.net-mvc-4

使用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的外键?

1 个答案:

答案 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;