gpt4 book ai didi

c# - 工作 MvvM 和并发

转载 作者:行者123 更新时间:2023-11-30 22:41:08 25 4
gpt4 key购买 nike

我正在使用 C# 编写的 WPF 和 MvvM 开发应用程序。我仍然是 MvvM 和 Entity Framework 的一些概念的初学者。除了并发问题,我似乎一切正常。我完成了这个 Microsoft article ,它对我不起作用。因此,就像 MvvM 结构一样,我有一个名为 BackflowManagementEntities 的模型和实体文件。然后我有一个存储库来处理测试人员的更新。我在这里插入了 try and catch 进行测试,但没有成功。

private BackflowManagementEntities dbContext;
internal void SaveChanges()
{
try
{
dbContext.SaveChanges();
}
catch (DBConcurrencyException ex)
{
Console.WriteLine("Concurrency Exception : " + ex.Message);
}
}

所以我有一个由三部分组成的问题:

  1. 这是我能想到的唯一应该实现并发检查的地方。如果我错了,请告诉我。
  2. 这是检查并发错误的正确异常/方法吗?我了解如何处理并发错误,只是不知道如何捕获它。
  3. 关于处理和捕获并发异常,您有什么资源可以推荐我阅读吗?

最佳答案

查看 Saving Changes and Managing Concurrency MSDN 文章...

By default, the Entity Framework implements an optimistic concurrency model. This means that locks are not held on data in the data source between when the data is queried and the data is updated. The Entity Framework saves object changes to the database without checking for concurrency. For entities that might experience a high degree of concurrency, we recommend that the entity define a property in the conceptual layer with an attribute of ConcurrencyMode="fixed", as shown in the following example:

Any conflicting changes will cause an OptimisticConcurrencyException.

有关详细信息,请参阅 How to: Manage Data Concurrency in the Object Context .

简而言之,将 ConcurrencyMode 更改为 Fixed 并捕获 OptimisticConcurrencyException 异常...

关于c# - 工作 MvvM 和并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4935694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com