entity-framework - 获取刚刚保存到数据库 MVC4 ASP.Net 的模型的记录 ID

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

在 MVC4 和 EF 5 中使用 ASP.Net/C#。我有一个基本模型,其中通过 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 的外键,因此我需要创建人员记录。

我可以在进入人口统计 View 之前创建人员,如下所示:
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 的外键?

最佳答案

假设您没有在 Entity Framework 内关闭 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;

关于entity-framework - 获取刚刚保存到数据库 MVC4 ASP.Net 的模型的记录 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15007726/

相关文章:

c# - -TargetDatabase 标志是否已在 EF 4.3 迁移中重命名?

c# - Entity Framework 映射到用于读取的 View 和用于 CUD 的表

entity-framework - 无法获取要更新 Entity Framework 中导航属性的关系

asp.net - 找不到类型或命名空间名称 'ProfileCommon'(在服务器中编译器生成的代码中)

c# - EditorFor继承模型MVC

c# - ASP.NET 实体管理器 : create more than one entity in a view

asp.net-mvc - Unity 使用参数将依赖项注入(inject)到 MVC 过滤器类中

c# - Entity Framework 性能问题

c# - EF/LINQ 如何在存在双向关系时包含子实体

asp.net-mvc-3 - MVC4 Razor 中可能存在重大变化,可通过 "@:@"修复