【问题标题】:Can a console project reuses code from a MVC3 EF4 project (in same solution)?控制台项目能否重用 MVC3 EF4 项目中的代码(在同一解决方案中)?
【发布时间】:2011-06-23 14:00:45
【问题描述】:

我目前正在使用 Entity Framework 4 编写一个 ASP.NET MVC3 应用程序。

有些任务(例如处理 10K+ 的记录)必须在后台运行。我正在编写一个控制台应用程序来完成这项工作(并且可能将其作为线程或窗口服务运行)。

控制台应用和 MVC3 EF4 项目

由于我在 MVC3 应用程序中编写了很多服务和模型代码,我想在我的控制台项目中重用它们。

这可能吗?

(由于时间限制,我无法将我们的服务重构为另一个 DLL/代码库)

【问题讨论】:

  • 为什么不将您的服务和模型代码移动到两个项目之间共享的库项目中。
  • 时间限制。我应该在开始之前完成它(客户在最后一分钟添加了批处理作业的要求,我需要它,比如“尽快!”)而且我对 EF4 太陌生,无法弄清楚在代码库中使用 EF4因为我遇到的每一本教程和书籍都包含在一个项目中。

标签: c# asp.net-mvc-3 entity-framework-4 console-application


【解决方案1】:

将服务和模型代码移到另一个 DLL 中的时间应该不会超过 10 分钟,如果那样的话。如果您不想更改命名空间,您甚至不需要更改 - 只需创建新项目,移动文件,从控制台项目和 MVC 项目中添加对类库的引用,您应该是完成。

【讨论】:

  • 几个小问题 - EF4 生成的模型应该在代码库中吗?如何设置代码库以连接到 EF4?
  • @Extrakun:你想让两个项目都看到模型吗?如果有,就放到类库中……
【解决方案2】:

这取决于您如何构建 MVC 系统以及您将在控制台应用程序中使用哪些部分。

例如,如果您要在控制台应用程序中重用 Controller 逻辑,您需要提供大量类的假实现。比如HttpContextBase

如果您使用过SessionCacheHttpContext,那么您将很难使用控制台应用程序的代码库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 2018-02-10
    • 2016-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多