我一直在尝试使用以下方法从Oracle 12g数据库中检索数据:
using (MyDbContext db = new MyDbContext()) { var t = db.MyTable.ToList(); }
底层SQL是:
SELECT "Extent1"."TOKEN" AS "TOKEN","Extent1"."FINGERPRINT" AS "FINGERPRINT","Extent1"."EXPIRES" AS "EXPIRES","Extent1"."ISSUED" AS "ISSUED" FROM "MYSCHEMA"."MYTABLE" "Extent1
我在Oracle SQL Developer中运行上面的SQL,它运行得很好.
MYSCHEMA.MYTABLE表中只有1条记录,但是当调用.ToList()时,我得到零结果.
我错过了Oracle实体框架的一些设置吗?
从nuget使用:
> Oracle 11g(11.2.0.1.0 – 64位)
>官方Oracle ODP.NET,托管实体框架驱动程序(12.1.021)
> Microsoft实体框架(6.1.3)
解决方法
显然,当我将新记录插入MYSCHEMA.MYTABLE表时,我忘了将它提交给数据库.
因此,Oracle SQL Developer工具能够向我显示记录正在成为记录,但在我提交之前,没有其他外部进程能够检索记录.
学过的知识.也许这个答案对其他人有帮助.