1

私はこのようにEFで挿入を行っています:

        using (Entities1 ctx = new Entities1())
        {
            ADDRESS_RESOLVER addrRes = new ADDRESS_RESOLVER();
            addrRes.ZIP_VEGA = addr.ZipVega;

            ctx.ADDRESS_RESOLVER.Add(addrRes);
            ctx.SaveChanges();
        }

テーブル ADDRESS_RESOLVER には、シーケンスが関連付けられた主キー ID があります。トリガーは次のようになります。

create or replace 
trigger SEQ_ADDRESS_RESOLVER_ID  
   before insert on "MY_DB"."ADDRESS_RESOLVER" 
   for each row 
begin  
   if inserting then 
      if :NEW."ID" is null then 
         select SEQ_ADDRESS_RESOLVER.nextval into :NEW."ID" from dual; 
      end if; 
   end if; 
end;

問題は、EF オブジェクトの addrRes の ID settet do 0 が PK であるため null に設定できないため、挿入しようとするとトリガーが機能しないことです。私の解決策は、トリガーの「if」を「null」ではなく「0」に変更することですが、それが正しい解決策かどうかはわかりません。これを行うよりスマートな方法はありますか?

4

2 に答える 2