首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单页应用程序、upshot.js、DbContext和DbDataController :只支持实体模型?

单页应用程序、upshot.js、DbContext和DbDataController :只支持实体模型?
EN

Stack Overflow用户
提问于 2012-03-19 11:19:34
回答 1查看 1.6K关注 0票数 7

在为单页应用程序使用示例时,我有以下TodoItem控制器:

代码语言:javascript
复制
public partial class MVC4TestController : DbDataController<MVC4TestContext>
{
    public IQueryable<TodoItem> GetTodoItems()
    {
        return DbContext.TodoItems.OrderBy(t => t.TodoItemId);
    }
}

问题1:

似乎只支持EntityModels?

当使用真正的ViewModel (模型仅用于视图,而不是用于1:1到数据库实体的映射)时,DbDataController不支持这一点。

此外,使用Linq.TranslationsPropertyTranslator似乎不起作用,请参阅以下代码摘要:

代码语言:javascript
复制
private static readonly CompiledExpressionMap<TodoItem, string> fullExpression =
    DefaultTranslationOf<TodoItem>.Property(t => t.Full).Is(t => t.Title + "_" + t.IsDone);

public string Full
{
    get
    {
        return fullExpression.Evaluate(this);
    }
}

问题2:

当使用SPA、DBContext和ViewModels时,推荐的设计是什么?

EN

回答 1

Stack Overflow用户

发布于 2012-03-23 07:42:25

据我所知-它灌输了绑定到DbContext的“真实”模型类的用法。我和你有同样的问题-我需要使用我自己的DTO对象,它们是“平面的”。Json序列化目前无法序列化在子对象(循环引用)中具有父引用的数据。通常,我不需要实体树,所以我创建了更小的类,非常适合视图。我尝试在JsonResult中使用普通控制器,并在检索数据后将返回的模型解析为ko.mapping.fromJS。工作得很好。但是-您必须处理MVC4生成的视图模型已经处理的所有好东西(比如创建导航,等等)。也许有人找到了一个解决办法,用DTO数据“伪造”一个DbContext。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9769211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档