Asp.net mvc MVC中的Soc是一种更好的MVC设计模式,适用于大型分布式应用

Asp.net mvc MVC中的Soc是一种更好的MVC设计模式,适用于大型分布式应用,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我需要创建一个电子商务应用程序,这是最好的设计 型号 我已经看到其中一些正在分离实体框架上下文 类在单独的类库中,业务层在单独的类中 库和数据类独立类库中的poco类 项目 我们有上下文类知道例子 这是Db创建的Poco类 using System.ComponentModel.DataAnnotations; using System.Web.Mvc; public partial class User { public int UserID { get; set; }

我需要创建一个电子商务应用程序,这是最好的设计 型号
我已经看到其中一些正在分离实体框架上下文 类在单独的类库中,业务层在单独的类中 库和数据类独立类库中的poco类 项目 我们有上下文类知道例子

这是Db创建的Poco类

 using System.ComponentModel.DataAnnotations;
 using System.Web.Mvc;  
 public partial class User   { 
 public int UserID { get; set; } 
 public string Username { get; set; }   
 public string Password { get; set; }
 public string ConfirmPassword { get; set; }  
 public string FullName
    { get; set; }         
 public string EmailID { get; set; }
                }  [HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Register(User U)
            {
                if (ModelState.IsValid)
                {
                    using (MyDatabaseEntities dc = new MyDatabaseEntities())
                    {
                        dc.Users.Add(U);
                        dc.SaveChanges();
                        ModelState.Clear();
                        U = null;
                        ViewBag.Message = "Successfully Registration Done";
                    }
                }
                return View(U);
            }
或者我必须为它和访问创建一个单独的类容器

 public class User   {  
    public int UserID { get; set; } 
    public string Username { get; set; }   
    public string Password { get; set; }
    public string ConfirmPassword { get; set; }  
    public string FullName  { get; set; }  *
    public string EmailID { get; set; }
                        } 
内部控制器

public ActionResult Register(User U)
            {              
                    using (MyDatabaseEntities dc = new MyDatabaseEntities())
                    {
                          User.UserID= u.UserID;
                        User.Username = u.Username;
                         User. Password = u.Password;
                        User.ConfirmPassword = u.ConfirmPassword;
                       User.UserID= u.UserID;                     
                        dc.SaveChanges();
                        ViewBag.Message = "Successfully Registration Done";
                    }
                }
                return View(U);
            }
哪种方法更好?模型绑定和这些方法的区别是什么?
为什么我们不喜欢绑定EF类

第二种方式-当您分离DAL(数据访问层)和
ViewModels
时,由MVC自动绑定到
Controller
的效果更好

因为如果您至少将这两个层分开(在您的示例中,我看不到BL层),您现在可以轻松地更改显示用户信息的
视图,并且不会弄乱DAL层,而是更改映射(在
寄存器中映射
视图模型
控制器

如果您有真正简单的视图和DAL逻辑,这看起来可能不重要,但当您的项目增长时,这将是一件好事,因为这将允许您分别更改视图逻辑和DAL逻辑