簡體   English   中英

什么是最好的帶有Asp.Net Web Api的實體框架或存儲庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM