在天蓝色webjob中引用另一个项目时出现黄色警告

时间:2016-04-01 20:46:08

标签: azure entity-framework-6 asp.net-web-api2 azure-webjobs

我在使用EF Code First开发的Azure WebApps上运行了一个WebAPI。

现在我需要WebJobs来完成一些调度任务,这些任务应该引用相同的数据库和模型。

我尝试添加WebAPI项目的引用,但是将DLL标记为黄色感叹号。

我无法得到如何继续。你能指点一下吗?

2 个答案:

答案 0 :(得分:2)

正如Frederico建议的那样,您应该将Web API项目拆分为多个项目。

如果将数据访问层(EF上下文+查询)隔离到一个单独的程序集中,则可以更轻松地将数据库访问共享到多个项目中。此外,您不必将web特定dll(例如TSystem.Web.Mvc)的引用添加到您的webjob项目中。

无论如何,您有一些黄色警告,因为您的Web API和Azure Web作业不是针对相同的.Net框架。

右键单击您的项目,然后选择属性。你应该能够调整.Net目标框架。

为了能够将项目A引用到项目B中,项目A应该以.Net框架为目标,其版本低于或等于项目B的目标.Net框架。 Choose .Net target framework into Visual Studio Project

答案 1 :(得分:0)

我假设你的EF DbContext类和实体驻留在你的Web API项目中。这种单片方法在集成方案中带来了许多问题,例如您所展示的问题。

我的建议是模块化您的解决方案并将所有与数据访问相关的类(DbContext,实体)移到另一个项目中,该项目将由Web API和WebJobs项目引用。

这是一种提高代码可维护性和执行基本软件工程原则(如关注点分离)的常用方法,可通过将应用程序划分为不同的功能层(例如,多层架构)来获得。

如果您有兴趣,可以在此处阅读更多相关信息:https://msdn.microsoft.com/en-us/library/ee658109.aspx?f=255&MSPPError=-2147217396