如何调用插入数据库的数据的id?

How to call id of data which is inserted into database?

T 和 entity.I 对数据库上下文使用单例模式。

   private DbSet<T> _objectSet;
    public Repository()
    {
        _objectSet = db.Set<T>();
    }
    public T Find(Expression<Func<T, bool>> query)
    {
        return _objectSet.FirstOrDefault(query);
    }
    public int Insert(T obj)
    {
        _objectSet.Add(obj);
        return Save();
    }
    public int Save()
    {
        return db.SaveChanges();
    }

插入成功,但插入的对象已返回 null。我怎么解决这个问题?感谢您的帮助。

    public BasicResult CreateTask(MTask task)
    {
        BasicResult result = new BasicResult();
        DateTime now = DateTime.Now;
        task.ModifiedOn = now;
        task.CreateOn = now;
        task.IsCompleted = false;
        int res=repoTask.Insert(task);
        if (res > 0)
        {
            result.Status = true;
            result.Message = "Successfully added.";
            MTask inserted=repoTask.Find(x => x.Description == task.Description && x.CreateOn == task.CreateOn);
            result.Id = inserted.Id;
            return result;
        }
        result.Status = false;
        result.Message = "An unexpected error occurred.";
        return result;
    }
   public int Insert(T obj)
    {
        _objectSet.Add(obj);
         Save();
         return obj;
    }
    public int Save()
    {
        return db.SaveChanges();
    }

并且您可以轻松地从 Repository.Insert(T obj)

返回的对象中获取 ID
var savedObject = repoObject.Insert(task);
var id = savedObject.Id;

使您的插入方法调用 SaveChanges 将取消进行跨国操作的选项 insertion/update,您应该阅读有关工作单元的更多信息