Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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# EF:不带条件选择的更新_C#_Sql_Entity Framework - Fatal编程技术网

C# EF:不带条件选择的更新

C# EF:不带条件选择的更新,c#,sql,entity-framework,C#,Sql,Entity Framework,我希望只使用一个SQL更新调用更新db by Entity框架核心中的记录,条件是记录未被删除 此代码表示我想做的事情,但调用2个db调用(选择+更新): 这段代码更好:只有一个db调用,但不包括!m、 删除条件(和空检查?) 怎么可能在efcore中编写它,从而只生成一个更新调用?像这样的: UPDATE Books SET ReturnDate = GetDate() WHERE Id = BookId AND Deleted = 0 请参阅[ConcurrencyCheck]指示EF将属

我希望只使用一个SQL更新调用更新db by Entity框架核心中的记录,条件是记录未被删除

此代码表示我想做的事情,但调用2个db调用(选择+更新):

这段代码更好:只有一个db调用,但不包括!m、 删除条件(和空检查?)

怎么可能在efcore中编写它,从而只生成一个更新调用?像这样的:

UPDATE Books SET ReturnDate = GetDate() WHERE Id = BookId AND Deleted = 0

请参阅[ConcurrencyCheck]指示EF将属性包含在更新位置部分中的可能副本。这很好。但是,当条件不满足时,它会抛出一个异常。您认为IsConcurrencyToken通常可以用于形成更新中的where条件吗?我认为这只是一个解决办法。请参阅[ConcurrencyCheck]指示EF将属性包含在更新的WHERE部分中的可能重复项。这很好。但是,当条件不满足时,它会抛出一个异常。您认为IsConcurrencyToken通常可以用于形成更新中的where条件吗?我更认为这只是一个解决办法。
  var book = new Book() {
      Id = bookId,
      ReturnDate = DateTime.Now
  };

  this.context.Books.Attach(book);
  this.context.Entry(book).Property(p => p.ReturnDate).IsModified = true;
  await context.SaveChangesAsync();
UPDATE Books SET ReturnDate = GetDate() WHERE Id = BookId AND Deleted = 0