[英]How to implement transaction in Entity Framework 6 with Web Api in Asp.Net?
[英]What is preferable Entity Framework or Repository with Asp.Net Web Api
您好,我是Web Api的新手,我也必須從頭開始創建。
我使用Web Api的方式是,僅現在必須自己創建並調用並傳遞數據,因此遇到的問題我不想在應用程序中再次出現。
問題:
我工作過的Web Api已實現存儲庫,並且使用該存儲庫對象,我必須與數據庫聯系,就像下面的示例一樣。
我有一個DAL方法DataRepository,它具有以下與數據庫聯系的方法:
GetAllAsync(ApplicationDbContext context, params Expression<Func<T, object>>[] navigationProperties)
GetListAsync(ApplicationDbContext context,
Func<T, bool> where, params Expression<Func<T, object>>[] navigationProperties)
FirstOrDefaultAsync(ApplicationDbContext context,
Func<T, bool> where, params Expression<Func<T, object>>[] navigationProperties)
AddAsync(ApplicationDbContext context, params T[] items)
RemoveAsync(ApplicationDbContext context, params T[] items)
UpdateAsync(ApplicationDbContext context, params T[] items)
我僅對一張表進行任何操作就使用了上述方法。
我想訪問多個表時遇到問題。 為此,我必須為要訪問的每個表創建對象,這樣也不好。
像這樣:
using (var context = ApplicationDbContext.Create())
{
try
{
var repository = new DataRepository<TableClassName>();
var skills = await repository.GetAllAsync(context);
}
catch (Exception ex)
{
throw ex;
}
}
那么,有什么解決方案可以將DataRepoitory用作EntitryFramework並使用一個對象訪問所有表?
如果不是,那么最好使用Asp.Net Web Api在控制器或存儲庫中直接訪問實體框架?
我建議僅將DataRepository用於它現在提供的操作,這很簡單。 您不太可能甚至不可能找到一種方法來抽象化DataRepository中應用程序中所需的所有可能查詢。 因此,當您引用EF DbContext時,直接使用LINQ或方法鏈來實現更復雜的查詢。 您可以找到許多有關如何使用EF查詢多個表和其他復雜查詢的示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.