C# 如何正确使用asp.net mvc数据库模型?
我的问题是模型应该如何使用?我认为我没有正确地使用它们。每当我对数据库(在本例中为用户表)进行更改并重建模型时,我的更改都会被删除,最终我会再次进行更改。所做的更改是添加属性和另一列(C# 如何正确使用asp.net mvc数据库模型?,c#,asp.net-mvc,entity-framework,model,C#,Asp.net Mvc,Entity Framework,Model,我的问题是模型应该如何使用?我认为我没有正确地使用它们。每当我对数据库(在本例中为用户表)进行更改并重建模型时,我的更改都会被删除,最终我会再次进行更改。所做的更改是添加属性和另一列(ConfirmPassword) 编辑:我正在使用EF5 这是由数据库创建的模型: using System; using System.Collections.Generic; public partial class User { public User() { this.Do
ConfirmPassword
)
编辑:我正在使用EF5
这是由数据库创建的模型:
using System;
using System.Collections.Generic;
public partial class User
{
public User()
{
this.Documents = new HashSet<Document>();
}
public int UserId { get; set; }
public string Username { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public string Grade { get; set; }
}
使用系统;
使用System.Collections.Generic;
公共部分类用户
{
公共用户()
{
this.Documents=new HashSet();
}
public int UserId{get;set;}
公共字符串用户名{get;set;}
公共字符串电子邮件{get;set;}
公共字符串密码{get;set;}
公共字符串等级{get;set;}
}
与我的变化:
using System;
using System.Collections.Generic;
using CompareObsolete = System.Web.Mvc.CompareAttribute;
public partial class User
{
public User()
{
this.Documents = new HashSet<Document>();
}
[Key]
public int UserId { get; set; }
[Required]
[StringLength(15, MinimumLength = 3)]
[Display(Name = "Username*: ")]
public string Username { get; set; }
[Required]
[EmailAddress]
[StringLength(25)]
[Display(Name = "Email Address*: ")]
public string Email { get; set; }
[Required]
[DataType(DataType.Password)]
[StringLength(50, MinimumLength = 4)]
[Display(Name = "Password*: ")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm Password*: ")]
[CompareObsolete("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
[Required]
[Display(Name = "Your Grade*: ")]
public string Grade { get; set; }
}
使用系统;
使用System.Collections.Generic;
使用CompareObsolete=System.Web.Mvc.CompareAttribute;
公共部分类用户
{
公共用户()
{
this.Documents=new HashSet();
}
[关键]
public int UserId{get;set;}
[必需]
[StringLength(15,最小长度=3)]
[显示(Name=“Username*:”)]
公共字符串用户名{get;set;}
[必需]
[电邮地址]
[第25段]
[显示(Name=“电子邮件地址*:”)]
公共字符串电子邮件{get;set;}
[必需]
[数据类型(数据类型.密码)]
[StringLength(50,最小长度=4)]
[显示(Name=“Password*:”)]
公共字符串密码{get;set;}
[数据类型(数据类型.密码)]
[显示(Name=“确认密码*:”)]
[CompareObsolete(“密码”,ErrorMessage=“密码和确认密码不匹配。”)]
公共字符串ConfirmPassword{get;set;}
[必需]
[显示(Name=“你的成绩*:”)]
公共字符串等级{get;set;}
}
1。创建UserMetaData
Class
public class UserMetaData
{
[Key]
public int UserId { get; set; }
[Required]
[StringLength(15, MinimumLength = 3)]
[Display(Name = "Username*: ")]
public string Username { get; set; }
[Required]
[EmailAddress]
[StringLength(25)]
[Display(Name = "Email Address*: ")]
public string Email { get; set; }
[Required]
[DataType(DataType.Password)]
[StringLength(50, MinimumLength = 4)]
[Display(Name = "Password*: ")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm Password*: ")]
[CompareObsolete("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
[Required]
[Display(Name = "Your Grade*: ")]
public string Grade { get; set; }
}
2。在new.cs文件中创建new partial类,并使用MetadataType
属性将元数据类分配给该类
[MetadataType(typeof(UserMetaData))] // assign type of your metadata here.
public partial class User
{
}
您正在使用实体框架吗?如果是,哪个版本?创建一个单独的视图模型()。诸如
ConfirmPassword
之类的属性不属于您的数据模型。