업데이트 방법이 예외를 throw하지만 두 번째 시도가 메시지와 함께 예외를 throw 한 후 첫 번째로 로깅 할 때 정상적으로 작동합니다. **두 번째 업데이트 시도 후 EF가 예외를 throw합니다.
추가 정보 : 같은 유형의 다른 개체가 이미 동일한 기본 키 값을 가지고 있기 때문에 유형 'Hsys.InfluenzaTaniBilgisi'의 실체를 부착하지 못했습니다. 이 문제는 '첨부'방법을 사용하거나 그래프의 요소에 충돌하는 키 값이 인 경우 '변경되지 않음'또는 '수정 됨'으로 을 사용할 때 발생할 수 있습니다. 이는 일부 엔티티가 새롭고 이 아직 데이터베이스 생성 키 값을 수신하지 않았기 때문일 수 있습니다. 이 경우 'Add'메소드 또는 'Added'엔티티 상태를 사용하여 그래프를 추적하면 이 아닌 새 엔티티의 상태를 '변경되지 않음'또는 'Modified'로 설정하면 으로 적절합니다.
** Iknow의 일반적이고 많은 smilar 문제를 발견하지만 난 그것이 작동되도록 couldnt한다 .. 여기
코드 조각이다;public void CreateUpdateInfluenzaTani(InfluenzaTaniBilgisi taniBilgisi)
{
using (HsysDbContext con = new HsysDbContext())
{
if (con.InfluenzaTestTanilari.Any(x => x.ICD10TaniKodu == taniBilgisi.ICD10Kodu && x.IsDeleted != true))
{
var taniExist = con.InfluenzaTaniBilgisi.FirstOrDefault(x => x.MuayeneId == taniBilgisi.MuayeneId && x.ICD10K
odu == taniBilgisi.ICD10Kodu && x.IsDeleted != true);
if (taniExist == null)
{
taniBilgisi.ObjectState = Framework.Entities.ObjectState.Added;
Create(taniBilgisi);
}
else
{
taniExist.HastaYasi = taniBilgisi.HastaYasi;
taniExist.HekimTC = taniBilgisi.HekimTC;
taniExist.ObjectState = Framework.Entities.ObjectState.Modified;
Update(taniExist);// throws Exception!
}
}
}
}
업데이트 방법은 무엇입니까? – Sefe
어떤 버전의 EntityFramework를 사용합니까? – Nikolaus
문제는 Update-Call에 있다고 생각합니다. ObjectState를 설정하지 않고 Update 메서드를 호출하는 것이 더 나을 수도 있습니다. – Nikolaus