以下是该方案:
我们拥有一个完整的功能数据库,包含数百个表和一个完整的自行开发的WCF(Windows Communication Foundation)Web服务API。
我的任务是使用此服务开发 ASP.NET MVC应用程序以进行数据交互。
为了达到这个目的,我知道所有的逻辑和服务消耗将在我的应用程序的控制器上,顺便说一下, MVC 5 。
问题在于,由于整个数据库已经投入生产,我没有一个模型可以构建所有的视图和控制器,我不知道是否有办法使用Web服务提供的类作为我的实际模型。
ASP.NET MVC依赖于EntityFramework和类定义的模型,但是按照 DataBaseFirst 方法的建议将整个数据库复制到EF类中根本不可行,因为数据库结构是如此巨大的,我并不是真的需要所有这一切来完成我的任务。
这是可能的还是开发常规ASP.NET应用程序会更容易?
非常感谢任何答案或代码段!
答案 0 :(得分:5)
如果你想搭建你的网页,你只需要使用实体框架(这不是那么有用)
您可以直接在视图上使用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>
答案 1 :(得分:1)
ASP.NET MVC依赖于EntityFramework和类定义的模型,但是按照DataBaseFirst方法的建议将整个数据库复制到EF类中根本不可行,因为数据库非常庞大而且我并不需要全部这是我的任务。
我对你的上述陈述感到有点困惑。使用数据库第一种方法只会将数据库的结构复制到应用程序中,而不是数据。另外,这是一个手动过程,因此数据库的大小并不重要。
导入后,您始终可以删除不需要的表。它就像在模型中选择它们并点击删除一样简单,因此它不是一个特别费力的过程。
我是数据库第一种开发风格的忠实粉丝,但它是个人选择,因此您可能会发现其他方法更具吸引力,这取决于您自己的偏好。