C# Asp.net-它如何处理对数据库行的引用?

C# Asp.net-它如何处理对数据库行的引用?,c#,asp.net,multithreading,linq,asp.net-mvc-5,C#,Asp.net,Multithreading,Linq,Asp.net Mvc 5,我有一个正在构建的web应用程序,其中有一个工作线程,它保存对数据库行的引用 我有一个外部服务调用web应用程序,并根据用户的输入更新数据库中的行 我想检查这些数据库行是否已被修改,但我不想通过查询来完成,因为我将是一个每秒多次执行此操作的程序员 所以我的问题是,当另一个进程更新数据库时,对数据库行的引用会更新吗?这些引用是非易失性的吗?对于后者,检查行是否已更新的最佳方法是什么 为清楚起见: 此对象指针表示数据库表中的一行: Callout co = await db.Callouts.Fin

我有一个正在构建的web应用程序,其中有一个工作线程,它保存对数据库行的引用

我有一个外部服务调用web应用程序,并根据用户的输入更新数据库中的行

我想检查这些数据库行是否已被修改,但我不想通过查询来完成,因为我将是一个每秒多次执行此操作的程序员

所以我的问题是,当另一个进程更新数据库时,对数据库行的引用会更新吗?这些引用是非易失性的吗?对于后者,检查行是否已更新的最佳方法是什么

为清楚起见:

此对象指针表示数据库表中的一行:

Callout co = await db.Callouts.FindAsync(id);

你要找的流行语是

虽然听起来你想自己玩,但如果设置正确,你可能没有意识到EF可以为你做这件事

您需要将以下内容添加到数据模型中:

[Timestamp]
public byte[] RowVersion { get; set; }
此外,您还需要将添加到数据成员中

最后,您将需要编写代码来处理

可以找到使用EF执行此操作的教程


如果你真的不想这么做,只想在修改表时通知你的应用程序,你可以用类似这样的方法来完成。

你正在寻找的流行语是

虽然听起来你想自己玩,但如果设置正确,你可能没有意识到EF可以为你做这件事

您需要将以下内容添加到数据模型中:

[Timestamp]
public byte[] RowVersion { get; set; }
此外,您还需要将添加到数据成员中

最后,您将需要编写代码来处理

可以找到使用EF执行此操作的教程


如果你真的不想这么做,只想在修改表时通知你的应用程序,你可以用类似的方法来完成。

你说的“保存对数据库行的引用”是什么意思?你的意思是它保留了对一个对象的引用吗?例如,我的数据库中有一个名为“Shift_Offer”的表。在我的工作线程中,我持有对该表中一行的引用,该行由我的模型中的“Shift_Offer”对象描述,该对象由数据支架过程生成。这是一个asp.net MVC问题。我不知道你所说的“保留对该表中一行的引用”是什么意思。你不可能是字面意思。表本身位于另一个框中,深埋在SQL数据文件中。您是指对表示该表中一行的域对象的引用吗?也许你可以发布一些代码。我刚才向你解释了我的意思。我想我不可能说得更清楚。你是说你有一个对象引用,指向“Shift_Offer”类型的对象。是这样吗?Shift_报价是由VisualStudio生成的?具体来说,“保存对数据库行的引用”是什么意思?你的意思是它保留了对一个对象的引用吗?例如,我的数据库中有一个名为“Shift_Offer”的表。在我的工作线程中,我持有对该表中一行的引用,该行由我的模型中的“Shift_Offer”对象描述,该对象由数据支架过程生成。这是一个asp.net MVC问题。我不知道你所说的“保留对该表中一行的引用”是什么意思。你不可能是字面意思。表本身位于另一个框中,深埋在SQL数据文件中。您是指对表示该表中一行的域对象的引用吗?也许你可以发布一些代码。我刚才向你解释了我的意思。我想我不可能说得更清楚。你是说你有一个对象引用,指向“Shift_Offer”类型的对象。是这样吗?Shift_的报价是由Visual Studio生成的?是的,这或多或少就是我想要的,谢谢。是的,这或多或少就是我想要的,谢谢。