C# 使用实体框架6的ORA-01008
Im使用Entity Framework 6访问Oracle数据库。 我有一个类似以下的查询:C# 使用实体框架6的ORA-01008,c#,oracle,entity-framework,ora-01008,C#,Oracle,Entity Framework,Ora 01008,Im使用Entity Framework 6访问Oracle数据库。 我有一个类似以下的查询: var query = db.Table .Where(x => x.Field1 == field1 || x.Field1 == "ConstantValue") .Where(x => x.Field2 == field2 || x.Field2 == "ConstantValue") .OrderByDescending(x => x.Field1)
var query = db.Table
.Where(x => x.Field1 == field1 || x.Field1 == "ConstantValue")
.Where(x => x.Field2 == field2 || x.Field2 == "ConstantValue")
.OrderByDescending(x => x.Field1)
当我执行它时,我得到以下错误:
ORA-01008:并非所有变量都已绑定
我知道这个消息通常意味着什么,但在这里没有任何意义。字段1和字段2不为空。有谁能帮我解决这个问题吗?如果你尝试以下方法:var query=db.Table.Where((x=>x.Field1==Field1 | | | x.Field1==“ConstantValue”)&(x=>x.Field2==Field2 | | x.Field2==“ConstantValue”)).OrderByDescending(x=>x.Field1)用这种方法是不可能的,但我尝试了以下方法:db.Table.Where(x=>((x.Field1==Field1 | | x.Field1==“常量”)和&(x.Field2==Field2 | | x.Field2==“常量”)…并得到相同的错误还有一个问题,属性Field1或属性Field2可为空吗?如果是,请尝试先测试HasValue:Where(x=>x.Field1.HasValue&(x.Field1==Field1 | x.Field1==“ConstantValue”)…不,它们都不可为null。当我删除| |后面的部分时,它会起作用,但当我添加它时,无论我尝试何种语法,我总是会遇到此异常:(我发现了问题。我的常量值在静态类中,看起来不可能。当我将“Constantvalue”更改为本地字段时,一切都正常:)