首页 > 解决方案 > 为什么选择 DbSet.Add() 旨在支持跟踪

问题描述

我是 EF 的新手,只是一个关于DbSet<T>.Add()跟踪功能的问题。

我可以理解DbSet<T>.Update()确实需要支持跟踪,因为 EF 需要检查哪些属性已更改然后生成正确的更新语句以避免在未修改的列中进行不必要的更新。

但是为什么DbSet<T>.Add()还需要支持跟踪呢?因为当我们使用 .Add() 方法时,我们想在数据库的表中添加一条全新的记录。由于数据模型是新的,每个属性都应该包含在将要发送到数据库的插入 SQL 语句中,因此没有点跟踪新创建的对象,EF 只需包含所有属性即可生成插入 SQL。

标签: c#entity-frameworkentity-framework-core

解决方案


推荐阅读