文章出處
文章列表
應用程序為什么要異步化?關于這個原因就不多說了,至于現有項目中代碼異步化改進,可以參考:實際案例:在現有代碼中通過async/await實現并行
這篇博文內容針對的是,EntityFramework 中的代碼異步化,示例代碼就用之前寫過的一篇博文:初試Code First(附Demo),下面是我在代碼改進的過程中遇到的問題記錄:
- Net Framework 版本修改為 4.5 以上,否則講報“找不到“async”修飾符所需的所有類型。是否面向了錯誤的框架版本,或缺少對程序集的引用?”錯誤,參考地址:http://social.msdn.microsoft.com/Forums/es-ES/2947ff30-930a-47da-ab7f-bcb59173339f/async?forum=2212
- 引用“using System.Data.Entity;”命名空間,這個在搜索的時候,都會提到,但是我在 CodeFirstDemo 項目中,引用了這個命名空間,但發現還是沒有 SaveChangesAsync 或 ToListAsync 的定義。
- “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 下載:
參考資料:
文章列表
全站熱搜