我们正在尝试使用相同的表,tblLogin具有以下字段: 用户名,用户类型,USEREMAIL,密码。
我有两种形式。一个用于登录,其中只需要2个字段,即。用户名和密码。 另一种形式具有CRUD功能的所有4个字段。
我创建了一个带有DataAnnotation的模型类 - [2]的[Required],并根据需要为所有四列创建了另一个带[Required]的类。
它给了我错误:
An exception of type 'System.InvalidOperationException' occurred in EntityFramework.dll but was not handled in user code
Additional information: The entity types 'AdminUser' and 'Login' cannot share table 'tblLogin' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary
2个模型类的代码如下:
Login.cs
[Table("tblLogin")]
public class Login
{
[Key]
public int adminId { get; set; }
public string adminName { get; set; }
[Required(ErrorMessage="Please provide your Email ID",AllowEmptyStrings=false)]
[DataType(System.ComponentModel.DataAnnotations.DataType.EmailAddress)]
public string adminEmail { get; set; }
[Required(ErrorMessage="Please provide your password",AllowEmptyStrings=false)]
[DataType(System.ComponentModel.DataAnnotations.DataType.Password)]
public string adminPassword { get; set; }
public string adminType { get; set; }
}
AdminUser.cs
[Table("tblLogin")]
public class AdminUser
{
[Key]
public int adminId { get; set; }
[Required]
public string adminName { get; set; }
[Required(ErrorMessage = "Please provide your Email ID", AllowEmptyStrings = false)]
[DataType(System.ComponentModel.DataAnnotations.DataType.EmailAddress)]
public string adminEmail { get; set; }
[Required(ErrorMessage = "Please provide your password", AllowEmptyStrings = false)]
[DataType(System.ComponentModel.DataAnnotations.DataType.Password)]
public string adminPassword { get; set; }
[Required]
public string adminType { get; set; }
}
我是mvc4的新手。
答案 0 :(得分:0)
我们确实找到了答案,只使用了一个类似于login.cs的模型类,并且在插入和编辑功能下的控制器中,我们编写了下面的代码并成功实现了服务器端验证。
if (string.IsNullOrEmpty(u.adminName))
ModelState.AddModelError("adminName", "Name field is Required");
if (string.IsNullOrEmpty(u.adminType))
ModelState.AddModelError("adminType", "Please select the type of User");
感谢您的建议
答案 1 :(得分:-1)
异常附加信息说:实体类型'AdminUser'和'Login'不能共享表'tblLogin' 对于每个DB表,您只能创建一个类。