我有一个表np_user_dtls
,在sql server
user_name
user_last_name
arabic_name
nationality
在mvc中,我创建了一个模型类,如下所示
public partial class np_user_dtls
{
[Display(Name = "First Name*")]
[Required(ErrorMessage = "First name is required.")]
public string user_name { get; set; }
[Required(ErrorMessage = "last name is required.")]
public string user_last_name { get; set; }
[Required(ErrorMessage = "arabic name is required.")]
public string arabic_name { get; set; }
[Required(ErrorMessage = "nationality is required.")]
public string nationality { get; set; }
}
在上下文模型中,我定义了模型类和db表之间的关系,如下所示
public System.Data.Entity.DbSet<****.Models.np_user_dtls> np_user__dtls { get; set; }
现在我需要另一个阿拉伯语名称不是强制性的类
所以我创建了一个如下所示的模型
public partial class np_user_dtls_1
{
[Display(Name = "First Name*")]
[Required(ErrorMessage = "First name is required.")]
public string user_name { get; set; }
[Required(ErrorMessage = "last name is required.")]
public string user_last_name { get; set; }
[Required(ErrorMessage = "nationality is required.")]
public string nationality { get; set; }
}
但是当我在db上下文中为此创建一个条目时,如下所示
public System.Data.Entity.DbSet<****.Models.np_user_dtls_1> np_user__dtls { get; set; }
它给我一个错误
类型****。模型。*****已经包含了一个定义 np_user__dtls
是不是可以为单个表定义多个模型?
答案 0 :(得分:2)
您可以为一个表设置一个实体模型。然后,您可以将不同的视图模型与实体模型绑定。 实体类。
public partial class np_user_dtls
{
public string user_name { get; set; }
public string user_last_name { get; set; }
public string arabic_name { get; set; }
public string nationality { get; set; }
}
您可以将此类用于数据库表。
public partial class np_user_dtls_response1
{
[Display(Name = "First Name*")]
[Required(ErrorMessage = "First name is required.")]
public string user_name { get; set; }
[Required(ErrorMessage = "last name is required.")]
public string user_last_name { get; set; }
[Required(ErrorMessage = "arabic name is required.")]
public string arabic_name { get; set; }
[Required(ErrorMessage = "nationality is required.")]
public string nationality { get; set; }
}
您可以将此类用作视图模型。接受此课程的要求。然后映射此类np_user_dtls并将信息保存在db中。
稍后您可以使用其他视图模型类,例如
public partial class np_user_dtls_response2
{
[Display(Name = "First Name*")]
[Required(ErrorMessage = "First name is required.")]
public string user_name { get; set; }
[Required(ErrorMessage = "last name is required.")]
public string user_last_name { get; set; }
[Required(ErrorMessage = "nationality is required.")]
public string nationality { get; set; }
}
再次使用类np_user_dtls绑定此类并将信息保存在db中。在此,您可以在应用程序级别中使用两种验证来保存数据库中的数据。以前您可以设置验证数据库级别。这就是为什么你不能设置两个类