我有以下应用程序:
现在我认为以上所有可以共享一些BO对象,所以我添加了另一个BO项目,所有这些都继承了。我还添加了另一个BLL项目,所有这些项目都继承了加密等常见内容。
现在,棘手的部分开始,我添加了实体框架。我们将以代码优先运行。我不确定如何正确定位整个事物。
我是否应该根据映射添加一个应用程序来构建数据库,然后在上面的3个应用程序中提供不同的上下文?
有关整个项目的建议,或者在这种情况下如何正确使用EF?
答案 0 :(得分:0)
我们有类似的设置,基本上是它的结构(我假设你使用的是Visual Studio)。
我们有一个包含MVC和Web API控制器的Web应用程序项目。 MVC控制器本质上是" bootstrap" Web应用程序,因此,一旦将其加载到浏览器中,所有通信都将使用对Web API控制器的Ajax调用进行。
我们还有一个单独的类项目(DLL),它包含数据库上下文,实体类和大多数业务逻辑。 Visual Studio"解决方案"然后包含Web应用程序和类库项目。
MVC控制器做的一些简单的事情并不适用于其他任何事情,因此这些方法没有进入类库。但是在大多数情况下,所有数据库通信都要通过类库。
答案 1 :(得分:0)
根据我的经验,您应该将数据实体对象与用于在Web API和这两个Web应用程序之间传输数据的DTO(数据传输对象)分开。我将使用Entity框架添加类库项目DAL(数据访问层),该框架用于数据库操作,然后在BLL中使用DTO,您将获得不同的应用程序上下文