2017-02-15 62 views
0

你好,我是新的Web Api,我也必須從頭開始創建。什麼是最好的實體框架或存儲庫與Asp.Net Web Api

我已經通過調用和傳遞數據來處理Web Api,現在只能由我自己創建,所以我遇到的問題我不想在應用程序中再次創建。

問題:

的網絡API我曾擁有倉庫實現,並使用該庫對象我有一個數據庫,就像下面的例子來聯繫。

我有具有以下,我已經使用與數據庫進行接觸的方法之一DAL方法DataRepository:

​​

我上面對於任何操作方法中使用的僅具有一個表。

我想要訪問多個表時遇到問題。 爲此,我必須爲每個我想要訪問的表創建對象,這樣做也不好。

這樣的:

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?

回答

0

我建議只使用DataRepository來處理它現在提供的操作,這很簡單。您找到一種方法來抽象DataRepository中的應用程序中所需的所有可能查詢,這是不可能的,甚至是不可能的。 因此,因爲您有對EF DbContext的引用,所以直接使用LINQ或方法鏈實現更復雜的查詢。你可以找到很多關於如何用EF查詢多個表和其他複雜查詢的例子。

+0

好吧,但有可能使用DataRepository進行查詢,或者強制使用EF查詢或多表訪問? –

+0

你是否擁有這個DataRepository的代碼?我個人沒有看到它的價值,但如果你可以改變它,你可以添加一個額外的方法與你想要的查詢。我的首選方法是爲每個功能(即CustomersService)創建特定的存儲庫或服務,並在那裏執行您直接使用EF所需的操作。請勿從控制器訪問EF。 –

+0

Ohhh好吧,你的意思是說我必須爲每個我想訪問的課程創建存儲庫,而且我可以做更多的操作嗎? –