3

将 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; }
     }

Demographics 有一个带有 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,以便将其传递给我的 Demographics,以便模型具有 personId 的外键?

4

1 回答 1

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;
于 2013-02-21T16:47:31.653 回答