1

查看 MVC 4 中的单页应用程序测试版,我看不出如何使用我的遗留域对象作为模型。似乎需要模型使用实体框架来使用 DbDataController 来获取数据等。

我不了解实体框架,所以我可能遗漏了一些东西。

如何在 MVC 4 的 SPA 中使用我的旧域(带有它自己的 DAL)?

4

1 回答 1

0

这是由 ASP.NET 论坛中的其他人回答的。

如果您想使用其中一些 RAD 工具,您将无法使用除 EF 之外的任何工具。但是,SPA 构建在 MVC 之上,因此您应该能够相当轻松地构建自己的版本。重要的组件将是在 ApiController 之上构建一个 DataController 和一个用于 DataController 提供的服务的 js 消费者。如果您要将模型格式化为与 EF 输出相同的格式(我认为它只是 OData),您也可以使用 upshot.js,并且只需要实现一个 DataController 来格式化您的域模型。

在使用它几天后,我将添加以下内容,理论上,如果您和未来版本的 SPA 处理/修复了以下内容,您可以使用它。

您可以创建一个继承自 System.Web.Http.Data.DataController(甚至可能是 ApiController)的控制器。然后它返回的对象必须只有一个用 System.ComponentModel.DataAnnotations.Key() 属性修饰的属性。我可以让视图正常工作,但一些更高级的功能,比如分组,我遇到了问题。

我猜是因为当前使用的 JSON 序列化程序存在问题,所以不会返回 Readonly 属性。应该是固定的。

当然,整个对象将被序列化,如果您的域对象与子对象很复杂,这可能会非常有问题。特别是如果其中一些对象本身存在序列化问题。

与复杂的序列化相关,当前的 JSON 序列化程序无法处理引用的域对象中的循环引用。

当使用我自己的继承自 System.Web.Http.Data.DataController 的控制器(示例使用 DBDataController)时,我也遇到了更新/删除/插入被回发的问题。

于 2012-03-28T19:01:52.853 回答