解决方案 »

  1.   

    oracle lob类型的处理机制缺失和其他数据库不太一致
    -- 保存lob到表
    CREATE OR REPLACE PROCEDURE "LOB_INSERT" (file_name_ varchar2, file_data_ in out nocopy blob) as
      begin
      insert into files (file_name, file_data)
        values (file_name_, empty_blob())
        returning file_data into file_data_;
      end;
     
    -- 更新表中的lob
    CREATE OR REPLACE PROCEDURE "LOB_UPDATE" (id_ number, file_name_ varchar2,  file_data_ in out nocopy blob) as
      begin
      update files set file_name = file_name_ where id = id_;
      select file_data into file_data_ from files where id = id_
        for update nowait;
      end;
     
    -- 从表中获取lob
    CREATE OR REPLACE PROCEDURE "LOB_SELECT" (id_ number, file_data_ in out nocopy blob) as
      begin
      select file_data into file_data_ from files where id = id_;
      end;
      

  2.   


    ​我找到一个方法:SaveChanges(System.Data.Objects.SaveOptions.DetectChangesBeforeSave),这个属性可以吧藏得objectstateentry相当于忽略掉。我感觉你说的有道理,不过我需要多数据库支持,在处理机制缺失和其他数据库不太一致的情况下,如何进行修改,菜鸟请多指教。
      

  3.   

    单词打错了,脏 ObjectStateEntry 对象无法继续,所以这个属性就相当于屏蔽掉,这个方法也不行,在空的数据库中插入数据之后,还是会报错,还有没有别的方法。
      

  4.   


    好吧只能这样了,不过我的数据库里根本就没有lob数据类型,它怎么会报这个错呢。