相关疑难解决方法(0)

ASP.NET MVC:使用EF实体作为视图模型?

可能重复:
ASP.NET MVC - Linq to Entities模型作为ViewModel - 这是一个好习惯吗?

可以使用EF实体类作为ASP.NET MVC中的视图模型吗?

如果viewmodel与EF实体类的90%相同怎么办?

假设我在Entity Framework模型中有一个Survey类.它90%匹配视图编辑所需的数据.与视图模型应该具有的唯一区别 - 是要在其中使用的一个或多个属性(填充Survey对象所需的因为EF类不能直接映射到它的属性的表示方式(子复选框,无线电组等) .))

你使用ViewData []传递它们吗?或者使用新的附加属性创建Survey类(SurveyViewModel)的副本(它应该能够从Survey复制数据并返回到它)?

编辑: 我也试图避免使用Survey作为SurveyViewModel属性.当使用UpdateModel或默认绑定器更新某些Survey属性时,看起来很奇怪,而其他(无法直接映射到实体) - 在控制器中使用SurveViewModel自定义属性.

asp.net-mvc viewmodel

16
推荐指数
3
解决办法
9623
查看次数

我的ASP.NET MVC应用程序是否正确构建?

我一直在阅读这些教程(特别是那些使用Linq-To-Entities的教程)并且我理解了基本概念,但是有些东西给了我一些问题.

教程通常只涉及仅使用基本创建,更新和删除语句的简单模型和表单.我有点复杂,我不确定我是否正确地采用这种方式,因为当需要处理六个数据库对象的关系时,教程就会停止帮助.

对于post方法,执行CRUD操作的常用方法

entities.AddToTableSet(myClass);
entities.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

不会做我想要的,因为完全实现的类没有被发布到控制器方法.我可以发布单个字段,表单集合或多个DTO对象,然后调用服务或存储库上的方法来获取从表单发布的信息,以及它需要查询或创建自身的信息,然后从所有这些,创建我可以保存的数据库对象.

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Add(int id, [Bind(Exclude = "Id")] ClassA classA,
                        [Bind(Exclude = "Id")]ClassB classB)
{
   // Validation occurs here

   if(!ModelState.IsValid)
      return View();

   try
   {
      _someRepositoryOrService.Add(id, classA, classB);
      return RedirectToAction("Index", new { id = id });
   }
   catch(Exception ex)
   {
      // Logging and exception handling occurs here
   }
}


public void Add(int id, ClassA classA, ClassB classB)
{
    EntityA eA = new EntityA
    {
        // Set a bunch of properties using the two classes and …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc entity-framework crud dto

5
推荐指数
1
解决办法
1141
查看次数

标签 统计

asp.net-mvc ×2

crud ×1

dto ×1

entity-framework ×1

viewmodel ×1