-1
ASP.NET MVC 및 Entity Framework에서 웹 응용 프로그램을 개발하려고 할 때, 내 데이터베이스에 두 개의 관련 테이블이 있습니까? 사용자 및 역할 .ASP MVC 및 엔터티 프레임 워크, 외부 키를 올바른 방법으로 삽입해야 함
내 응용 프로그램에서 리포지토리 패턴을 사용하면 새 사용자를 추가 할 수있는 페이지가 있으며 이러한 새로운 사용자의 역할을 구문 분석하려고합니다. 하지만 불행히도 나는 그것을 작동시키지 못한다.
VS에서 다음과 같은 오류 메시지가 표시되지만 문제를 해결하는 방법을 모릅니다.
가 'project.Models.Database.Role'
모델 클래스 유형 'INT'을 변환 할 수 없습니다 :
public class User
{
[Key]
public int Id { get; set; }
public string UserMail { get; set; }
public string UserPassword { get; set; }
public virtual Role UserRole { get; set; }
}
public class Role
{
public int Id { get; set; }
public string RoleName { get; set; }
private List<User> users;
public Role()
{
users = new List<User>();
}
public virtual ICollection<User> user { get; set; }
}
뷰 모델
public class UserProfileViewModel
{
//user
[Required]
[DisplayName("e-mail")]
public string UserMail { get; set; }
[Required]
[DataType(DataType.Password)]
[DisplayName("adgangskode")]
public string UserPassword { get; set; }
public virtual Role UserRole { get; set; }
[Required]
[DisplayName("navn")]
public string Name { get; set; }
[Required]
[DisplayName("telefonnummer")]
public int Phone { get; set; }
}
컨트롤러, 나는 구문 분석을 시도하고있다 역할이 생성되면 사용자가 생성됩니다.
[ValidateInput(false)]
[HttpPost]
public ActionResult CreateClub(UserProfileViewModel viewModel, string role)
{
role = string.Empty;
Role roles = db.Roles.SingleOrDefault(x => x.RoleName == "club");
role = roles.Id.ToString();
ViewBag.Test = role;
try
{
if (ModelState.IsValid)
{
_repository.CreateClub(viewModel, role);
ViewBag.Succes = "Klub oprettet";
}
}
catch (Exception ex)
{
ModelState.AddModelError("", ex);
ViewData["CreateError"] = "Unable to create; view innerexception";
}
return View();
}
이 줄은 UserRole.Id
의 INT 원인을 반환합니다
public void CreateClub(UserProfileViewModel viewModel, string role) // <- it wont parse a role
{
var user = new User()
{
UserMail = viewModel.UserMail,
UserPassword = viewModel.UserPassword,
UserRole = viewModel.UserRole.Id //<- Error comes here
};
var profile = new Profile()
{
Name = viewModel.Name,
Phone = viewModel.Phone
};
user.profile = profile;
db.Users.Add(user);
db.Profiles.Add(profile);
db.SaveChanges();
}
는'UserRole.Id'는'int'없는 유형의'Role'을 반환 :
당신은 같은 뭔가를 변경해야합니다. – abdul
당신이 의미하는 것을 정의 할 수 있습니까? 나는 완전히 이해하지 못합니다. 어쩌면 예를 들어 :) –
대신 공용 가상 역할 UserRole {get; 세트; }, 이것과 같은 것을 의미합니까, public int UserRole_Id {get; 세트; } –