文章出處

應用程序為什么要異步化?關于這個原因就不多說了,至于現有項目中代碼異步化改進,可以參考:實際案例:在現有代碼中通過async/await實現并行

這篇博文內容針對的是,EntityFramework 中的代碼異步化,示例代碼就用之前寫過的一篇博文:初試Code First(附Demo),下面是我在代碼改進的過程中遇到的問題記錄:

  1. Net Framework 版本修改為 4.5 以上,否則講報“找不到“async”修飾符所需的所有類型。是否面向了錯誤的框架版本,或缺少對程序集的引用?”錯誤,參考地址:http://social.msdn.microsoft.com/Forums/es-ES/2947ff30-930a-47da-ab7f-bcb59173339f/async?forum=2212
  2. 引用“using System.Data.Entity;”命名空間,這個在搜索的時候,都會提到,但是我在 CodeFirstDemo 項目中,引用了這個命名空間,但發現還是沒有 SaveChangesAsync 或 ToListAsync 的定義。
  3. “update-package EntityFramework”,NuGet 更新 EntityFramework 版本為 6.1.1,CodeFirstDemo 項目中的 EntityFramework 原始版本為 6.0.0,更新到 6.1.1 就好了,不知道是不是這個原因。

代碼示例:

        public static async Task PerformDatabaseOperations()
        {
            using (var db = new NewContext())
            {
                Console.Write("輸入新聞類型標題: ");
                var name = Console.ReadLine();

                var type_Model = new NewType { Name = name };
                db.NewTypes.Add(type_Model);
                await db.SaveChangesAsync();

                Console.WriteLine("查詢新聞類型標題:");
                var search_type = Console.ReadLine();
                var query = await (from b in db.NewTypes
                                   where b.Name == search_type
                                   select b).ToListAsync();

                Console.WriteLine("查詢結果:");
                foreach (var item in query)
                {
                    Console.WriteLine(item.Name);
                }

                Console.ReadKey();
            }
        }
    }

示例 Demo 下載:

參考資料:


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()