나는 오라클 V에 대한 DevArt dotConnect를 사용하여 직접 모드에서 오라클 익스프레스의 기본 HR 모델에 액세스하는 간단한 테스트 프로그램을 작성 6.8.0.350 :.StoreGeneratedPattern이 DevArt Entity Framework와 작동하지 않습니까?
using (var ctx = new HREntities())
{
var locNew = new LOCATION();
locNew.CITY = "Magdeburg";
ctx.LOCATIONs.AddObject(locNew);
ctx.SaveChanges();
// will output 0; in database ID is generated
Console.WriteLine(locNew.LOCATIONID);
}
을 당신은 내가 삽입을하고 있어요 볼 수 있듯이 LOCATION
테이블에 추가하십시오. (그것이 XML에 기록되는 경우 예, 확인) Identity
에
create or replace
trigger TRG_LOCATION_INS
before insert on "HR"."LOCATIONS"
for each row
begin
if inserting then
select LOCATIONS_SEQ.nextval into :NEW."LOCATION_ID" from dual;
end if;
end;
마지막 단계는 내 모델에서 StoreGeneratedPattern
을 설정했다 : 여기 트리거를 추가했습니다.
테스트 응용 프로그램을 실행하면 레코드가 만들어지고 올바른 새로운 LocationID
을 얻었습니다. 그러나 EF에서는 새로운 신분증이 도착하지 않습니다.
왜 생성 된 ID를 인식하지 못합니까? 그렇다면, 그 평균 무엇을 : DevArt Blog
편집 : 나는 이제 다른 시나리오에서 테스트 :
- devArt EntityModel 직접 모드에서 OracleClient와 OracleClient
- ADO.NET EntityModel와
- devArt EntityModel을
결과는 같습니다. SaveChanged에 No DSID
이 리턴됩니다. 또 다른 결과로, 경우에 나는 기업이 주요으로 지금이 있다는 것을, InvalidOperationException이 말을 올릴 것이다
ctx.Refresh(RefreshMode.ClientWins, log);
쓰기 '0'올바른하지만 도움이 :-(이다.
죄송합니다, 귀하의 답변을 너무 늦게 보았습니다. 감사. – sprinter252
이 문제가 해결되었습니다. 새로운 버전에서는 제가 생각합니다. .edml을 가지고 있고 EntityFramework 6 – hanzolo