2014-10-12 62 views
0

我有一個模型:如何跳過在數據庫視圖模型(ASP MVC)

public class User 
{ 
    public int ID { get;set; } 
    public string userName { get;set; } 
    public string userPassword { get;set; } 
    public string userEmail { get;set; } 
} 

和實例視圖模型:

public class UserViewModel 
{ 
    public int ID { get; set; } 

    [DisplayName("User Name")] 
    public string userName { get; set; } 
    public string userPassword { get; set; } 
    public string userEmail { get; set; } 
} 

,並創建操作:

[HttpPost] 
public ActionResult Create(UserViewModel u) 
{ 
    //user.ID = u.ID; 
    user.userEmail = u.userEmail; 
    user.userName = u.userName; 
    user.userPassword = u.userPassword; 

    dbContext.users.Add(user); 
    dbContext.SaveChanges(); 

    return View(); 
} 

所以現在我只想添加我的模型到數據庫中,但是如果我創建一個View,那麼Visual Studio會不斷地將其添加到上下文中:

public System.Data.Entity.DbSet<ProjectManagement.ViewModels.UserViewModel> UserViewModels { get; set; } 

..它在數據庫中創建一個額外的空表。這是爲什麼?如果我想將模型和ViewModel與驗證,數據等分離,我該怎麼辦?

+0

在行動'用戶'變量是不確定的?你缺少一行'user = new User()'? – py3r3str 2014-10-12 14:40:50

+0

我有字段:私人用戶用戶=新用戶():)。但我的問題是,Visual Studio創建表:用戶與用戶數據和用戶視圖模型,這是一個空的..我不希望這個表(UserViewModel) – Alder23 2014-10-12 14:50:53

回答

2

當您創建視圖時,請不要選擇數據庫上下文。手動處理,Visual Studio不會自動更改您的上下文類。

當您創建視圖選擇ViewModel和數據庫上下文時,Visual Studio會打開上下文文件併爲您的ViewModel添加DbSet條目,因爲它不存在。如果你不選擇它不會做任何事情,那麼你可以控制你的文件。從您的視圖模型


作爲附帶節點,映射屬性模型有工具,如ValueInjecter,這是值得擁有的,看看。

相關問題