【问题标题】:Develop an ASP.NET MVC Application with Web Services as the Data Access Layer使用 Web 服务作为数据访问层开发 ASP.NET MVC 应用程序
【发布时间】:2014-02-28 09:26:32
【问题描述】:

这是场景:

我们有一个完整的、功能齐全的数据库,包含数百个表和一个完整的 WCF (Windows Communication Foundation) Web Services 的自研 API。

我的任务是开发一个 ASP.NET MVC 应用程序,使用此服务进行数据交互。

为了实现这个目的,我知道所有的逻辑和服务消耗都将在我的应用程序的控制器中,顺便说一下,它是 MVC 5。 p>

问题是,由于整个数据库已经在生产中,我没有一个模型来脚手架所有的视图和控制器,我不知道有没有办法使用Web 服务提供的类作为我的实际模型。

ASP.NET MVC 依赖于类定义的 EntityFramework 和模型,但是按照 DataBaseFirst 方法的建议,将整个数据库复制到 EF 类中根本不可行,因为数据库结构是如此巨大,我的任务并不需要全部。

这可能吗,还是开发一个常规的 ASP.NET 应用程序更容易?

任何答案或代码 sn-p 将不胜感激!

【问题讨论】:

    标签: c# asp.net-mvc web-services wcf asp.net-mvc-5


    【解决方案1】:

    如果你想搭建你的页面,你只需要使用实体框架(这不是很有帮助)。
    您可以直接在您的视图上使用 web 服务类,或者您可以(并且可能应该)使用视图模型将数据提交到您的视图。
    一个尽可能简单的例子是:

    public ActionResult Index(int id)
    {
         var webserviceObject = webserviceProxy.GetMyObject(id);
         var vm = new MyViewModel();
         vm.Name = webserviceObject.Name;
         return view(vm);
    }
    

    您的简单视图如下所示:

    @model MyViewModel
    <html>
    <body>
    <h3>@Model.Name</h3>
    </body>
    </html>
    

    【讨论】:

    • 非常感谢!比预期的要容易^_^
    【解决方案2】:

    ASP.NET MVC 依赖于类定义的 EntityFramework 和模型,但是按照 DataBaseFirst 方法的建议,将整个数据库复制到 EF 类中根本不可行,因为数据库太大了,我真的不需要所有我的任务。

    我对你上面的说法有点困惑。使用数据库优先的方法只会将数据库的结构复制到应用程序中,而不是数据。此外,这是一个手动过程,因此数据库有多大并不重要。

    导入后,您可以随时删除不需要的表。就像在模型中选择它们一样简单,然后点击删除,所以这不是一个特别费力的过程。

    我是数据库优先开发风格的忠实拥护者,但这是个人选择,因此您可能会根据自己的喜好找到其他更有吸引力的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-09
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      相关资源
      最近更新 更多