2017-02-15 41 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好吧,你的意思是说我必须为每个我想访问的课程创建存储库,而且我可以做更多的操作吗? –