久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

LINQ 中的數據沖突

Data Conflict in LINQ(LINQ 中的數據沖突)
本文介紹了LINQ 中的數據沖突的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

在使用 SubmitChanges() 進行更改時,LINQ 有時會因 ChangeConflictException 異常而終止,并顯示錯誤消息 Row not found or changed,而沒有當另一個用戶更改了該行中的某些數據時,任何表明發生沖突的行或發生沖突的更改的字段的任何指示.

When making changes using SubmitChanges(), LINQ sometimes dies with a ChangeConflictException exception with the error message Row not found or changed, without any indication of either the row that has the conflict or the fields with changes that are in conflict, when another user has changed some data in that row.

有什么方法可以確定哪一行有沖突以及它們出現在哪些字段中,還有什么方法可以讓 LINQ 忽略該問題并簡單地提交數據嗎?

Is there any way to determine which row has a conflict and which fields they occur in, and also is there a way of getting LINQ to ignore the issue and simply commit the data regardless?

此外,有人知道該異常是在行中的任何數據發生更改時發生,還是僅在 LINQ 試圖更改的字段中的數據發生更改時發生?

Additionally, does anybody know whether this exception occurs when any data in the row has changed, or only when data has been changed in a field that LINQ is attempting to alter?

推薦答案

這是查看沖突位置的方法(這是一個 MSDN 示例,因此您需要大量自定義):

Here's a way to see where the conflicts are (this is an MSDN example, so you'll need to heavily customize):

try
{
    db.SubmitChanges(ConflictMode.ContinueOnConflict);
}
catch (ChangeConflictException e)
{
    Console.WriteLine("Optimistic concurrency error.");
    Console.WriteLine(e.Message);
    Console.ReadLine();
    foreach (ObjectChangeConflict occ in db.ChangeConflicts)
    {
        MetaTable metatable = db.Mapping.GetTable(occ.Object.GetType());
        Customer entityInConflict = (Customer)occ.Object;
        Console.WriteLine("Table name: {0}", metatable.TableName);
        Console.Write("Customer ID: ");
        Console.WriteLine(entityInConflict.CustomerID);
        foreach (MemberChangeConflict mcc in occ.MemberConflicts)
        {
            object currVal = mcc.CurrentValue;
            object origVal = mcc.OriginalValue;
            object databaseVal = mcc.DatabaseValue;
            MemberInfo mi = mcc.Member;
            Console.WriteLine("Member: {0}", mi.Name);
            Console.WriteLine("current value: {0}", currVal);
            Console.WriteLine("original value: {0}", origVal);
            Console.WriteLine("database value: {0}", databaseVal);
        }
    }
}

讓它忽略問題并提交:

db.SubmitChanges(ConflictMode.ContinueOnConflict);

這篇關于LINQ 中的數據沖突的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Why shouldn#39;t I always use nullable types in C#(為什么我不應該總是在 C# 中使用可空類型)
C# HasValue vs !=null(C# HasValue vs !=null)
C# ADO.NET: nulls and DbNull -- is there more efficient syntax?(C# ADO.NET:空值和 DbNull —— 有沒有更高效的語法?)
How to set null value to int in c#?(如何在c#中將空值設置為int?)
How to handle nulls in LINQ when using Min or Max?(使用 Min 或 Max 時如何處理 LINQ 中的空值?)
Method call if not null in C#(在 C# 中如果不為 null 的方法調用)
主站蜘蛛池模板: 日韩电影一区二区三区 | 国产精品一区二区视频 | 久久一区二区视频 | 欧美精品一二区 | 欧美精品一区二区免费 | 国产91在线观看 | 羞羞视频免费观看入口 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 精品一区二区三区四区视频 | 成人免费看黄网站在线观看 | 男人天堂午夜 | 国产福利视频 | 国产精品18hdxxxⅹ在线 | 成人不卡一区二区 | 久久精品国产久精国产 | a级片www | 日本在线一区二区三区 | 精品蜜桃一区二区三区 | 久久久蜜桃一区二区人 | 99久久国产综合精品麻豆 | 欧美一区二区三 | 国产精品资源在线观看 | 欧洲av在线| 黄色香蕉视频在线观看 | 全部免费毛片在线播放网站 | 91麻豆精品国产91久久久更新资源速度超快 | 在线观看涩涩视频 | 国产精品无码久久久久 | 久久久精| 国产黄色精品 | 久久不卡日韩美女 | 黄a在线播放 | 一级欧美黄色片 | 欧产日产国产精品国产 | 成人毛片在线观看 | 羞视频在线观看 | 黄色在线观看国产 | 久久久91精品国产一区二区三区 | 日韩在线播放av | 五月天婷婷综合 | 天天精品综合 |