Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架如何插入新值?_C#_Linq_Entity Framework - Fatal编程技术网

C# 实体框架如何插入新值?

C# 实体框架如何插入新值?,c#,linq,entity-framework,C#,Linq,Entity Framework,我有另一个问题与此相关,但为了清楚起见,我想把它们分开 我偶然发现了一个问题,我无法在表中插入新行,因为它只有一列,而该列是递增的,并且是PK 然而,在实体框架中创建该集合的新对象一点也不麻烦 var admin = new Administrator {}; context.Administrator.AddObject(admin); context.SaveChanges(); int adminId = admin.adminId; //This would give me the ne

我有另一个问题与此相关,但为了清楚起见,我想把它们分开

我偶然发现了一个问题,我无法在表中插入新行,因为它只有一列,而该列是递增的,并且是PK

然而,在实体框架中创建该集合的新对象一点也不麻烦

var admin = new Administrator {}; context.Administrator.AddObject(admin); context.SaveChanges(); int adminId = admin.adminId; //This would give me the new value var admin=新管理员{}; context.Administrator.AddObject(admin); SaveChanges(); int adminId=admin.adminId//这会给我新的值
这是如何工作的?

提交更改时,Entity Framework会为每个添加的实体执行一次插入到与管理员实体集关联的表中的操作。 由于PK在数据库中是自动递增的,EF知道它不需要提供PK,但在插入后将其检索。然后用现在可用(和数据库生成)的PK更新管理员实体

这是典型的对象关系映射工作,我希望我理解了你的问题

下面是EF发送的执行Insert作业的确切SQL查询

insert [dbo].[Entities] default values
select [Id]
  from [dbo].[Entities]
  where @@ROWCOUNT > 0 and [Id] = scope_identity()

它会在表中插入一个默认行,然后选择新行的Id。

提交更改时,Entity Framework会为每个添加的实体在与管理员实体集关联的表中执行插入操作。 由于PK在数据库中是自动递增的,EF知道它不需要提供PK,但在插入后将其检索。然后用现在可用(和数据库生成)的PK更新管理员实体

这是典型的对象关系映射工作,我希望我理解了你的问题

下面是EF发送的执行Insert作业的确切SQL查询

insert [dbo].[Entities] default values
select [Id]
  from [dbo].[Entities]
  where @@ROWCOUNT > 0 and [Id] = scope_identity()

它在表中插入一个默认行,然后选择新行的Id。

但它如何进行插入?行。添加()?当然不是,但是它在不插入任何内容的情况下如何进行插入,基本上只是告诉dbms添加一行。但是它如何进行插入呢?行。添加()?当然不是,但它如何在不插入任何内容的情况下进行插入,基本上只是告诉dbms添加一行,这让我感到困惑。。