이 ASP.Net 코드가 있는데이를 실행할 때 오류가 발생했습니다. 오류 :.Attach 후에 타임 스탬프 열을 업데이트 할 수 없습니다.
내가 이미이 테이블의 매핑입니다 :..서버 : 메시지 272, 수준 16, 상태 1, 줄 1 타임 스탬프 열을 업데이트 할 수 없습니다. 여기
속성 (X => x.Version) .HasColumnName (@ "버전") IsOptional() HasColumnType ("타임 스탬프 ") .HasDatabaseGeneratedOption (System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Computed);
테이블에 버전 열이 있습니다.
public async Task<IHttpActionResult> Put([FromBody]WordForm wordForm)
{
// SampleSentences -> s
var oldsObj = db.SampleSentences
.Where(w => w.WordFormId == wordForm.WordFormId)
.AsNoTracking()
.ToList();
var newsObj = wordForm.SampleSentences.ToList();
// There is other code here to modify SampleSentences
//
//
// db.WordForms.Attach(wordForm);
// db.Entry(wordForm).State = EntityState.Modified;
wordForm.StatusId = (int)EStatus.Saved;
await db.SaveChangesAsync(User, DateTime.UtcNow);
return Ok(wordForm);
}
나는 방법의 두 줄에 주석을 추가하여 오류를 해결할 수 있었다. 그러나 누군가 내가 그 라인을 주석 처리하지 않으면 왜 에러가 발생하는지 설명 할 수 있습니다. wordForm을 첨부하고 수정 됨으로 표시 할 수 없습니까?
'timestamp'는'rowversion'의 사용되지 않는 이름입니다. 그것은 시간과 아무런 관련이 없습니다 –
엔티티의 rowversion 속성에'[TimeStamp]'속성을 추가하십시오 –