저는 asp.net.mvc를 가르치려고합니다. MVC 용 기본 템플릿을 사용하여 프로젝트를 시작했습니다. 템플릿을 조금 변경 했으므로 기본 동작 방법으로 등록 할 때 새로 등록 된 사용자 ID를 companies
이라는 다른 테이블에 추가합니다.테이블의 열을 업데이트 할 수 없습니다.
기본적으로 프런트 엔드에 새 텍스트 필드를 추가했습니다. 사용자가 등록 할 때 숫자를 입력합니다. 백엔드에서 나는 companies
테이블에서 회사를 찾고 ID는 앞면과 일치합니다. 여기
public async Task<ActionResult> RegisterCA(RegisterCAEViewModel model)
{
if (ModelState.IsValid)
{
var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
var currentUser = UserManager.FindByName(user.UserName);
var roleresult = UserManager.AddToRole(currentUser.Id, "CompanyAdministrator");
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
var company = db.Companies.Find(model.CompanyCode);
// find the company by the id passed in the frontend.
if (company!=null)
{
company.CAId = currentUser.Id;
//set the id
db.Entry(company).State = EntityState.Modified;
db.SaveChanges();
}
return RedirectToAction("Index", "Home");
}
AddErrors(result);
}
return View(model);
}
: 일치가 있으면 내가 여기
CAID
라는 회사 테이블의 컬럼에 현재 사용자 ID를 저장하고자하는 모든 행동 방법이다 (필자는await
후 내 수정 한) 나는 위의 방법으로 뭘하려 :
var company = db.Companies.Find(model.CompanyCode);
// find the company by the id passed in the frontend.
if (company!=null)
{
company.CAId = currentUser.Id;
//set the id
db.Entry(company).State = EntityState.Modified;
db.SaveChanges();
내가 오류를하지 않는 사용자를 등록합니다. 사용자는 등록되었지만 CAId
필드는 새로 등록 된 사용자 ID로 갱신되지 않습니다.
제발, 누군가 도와 줄 수있어! 내가 시간 :(이 붙어 있었어요로 나는 매우 감사하게 될 것입니다.
내 생각 엔, 당신은 세트를 기본 컨텍스트에 엔티티를 연결해야
'Find' 메소드가 이미 추적 된 엔티티를 리턴하므로, 상태를 수정할 필요가 없습니다. 상태를 수정하지 않으면'SaveChanges' 바로 전에 어떤 상태입니까? – Crowcoder
질문을 이해할 수 있는지 모르겠지만 CAId의 기본 상태는 null입니다. –
신경 쓰지 마세요, 마이클 베레진이 옳다고 생각합니다. – Crowcoder