在为单页应用程序使用示例时,我有以下TodoItem控制器:
public partial class MVC4TestController : DbDataController<MVC4TestContext>
{
public IQueryable<TodoItem> GetTodoItems()
{
return DbContext.TodoItems.OrderBy(t => t.TodoItemId);
}
}问题1:
似乎只支持EntityModels?
当使用真正的ViewModel (模型仅用于视图,而不是用于1:1到数据库实体的映射)时,DbDataController不支持这一点。
此外,使用Linq.Translations或PropertyTranslator似乎不起作用,请参阅以下代码摘要:
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时,推荐的设计是什么?
发布于 2012-03-23 07:42:25
据我所知-它灌输了绑定到DbContext的“真实”模型类的用法。我和你有同样的问题-我需要使用我自己的DTO对象,它们是“平面的”。Json序列化目前无法序列化在子对象(循环引用)中具有父引用的数据。通常,我不需要实体树,所以我创建了更小的类,非常适合视图。我尝试在JsonResult中使用普通控制器,并在检索数据后将返回的模型解析为ko.mapping.fromJS。工作得很好。但是-您必须处理MVC4生成的视图模型已经处理的所有好东西(比如创建导航,等等)。也许有人找到了一个解决办法,用DTO数据“伪造”一个DbContext。
https://stackoverflow.com/questions/9769211
复制相似问题