实体框架 - 引用本身

本文关键字:引用 框架 实体 | 更新日期: 2023-09-27 18:35:24

>我有一个用户表,其中包含一个名为 CreatedById 的字段,该字段不可为空。当最终用户创建了一个新数据库时,我需要为该用户创建一个用户帐户,但随后我想设置 createdById 字段,唯一的 Id 是我刚刚保存的记录的 ID。那么,如何引用我正在保存的当前记录呢?我是否需要使 CreatedById 为空?

            user.CreatedById = ???; // <-- Here is the problem
            user.CreatedAt = DateTime.Now;
            user.Name = userName;
            database.User.Add(user);
            database.SaveChanges();

实体框架 - 引用本身

需要先保存用户,然后将用户 ID 附加到实体。将用户保存到上下文后,使用 database.SaveChanges()user.Id将填充新创建的 id。

例:

var user = new User();
user.Name = "John Smith";
database.User.Add(user);
database.SaveChanges();
user.CreatedById = user.Id; // user.Id has the created entity id.
database.SaveChanges();

我很难理解的一件事,为什么要将CreatedById设置为与保存相同的用户 ID?