您好:我正在使用devArt的Oracle Connect与Entity Framework 4.1 POCO和Oracle合作。
我对Oracle列类型为Char(固定长度)的某些查询有疑问。生成的SQL查询中使用的参数被格式化为VarChar而不是Char,并且它导致我的查询返回零行。有没有办法强制EntityFramework / DevArt填充参数?
以下是问题的示例(查询用户名)。此代码应返回行,但不会返回。
string aUserName = "Test";
var query = from u in users
where u.UserName == aUserName
select u;
如果我将第一行代码更改为:
string aUserName = "Test".PadRight(20);
然后它可以工作(Oracle列是Char(20))。我不想做填充(我不必使用SQL Server)。我可以进行一些配置更改吗?连接字符串开关?我的POCO上的属性?
答案 0 :(得分:2)
您有两种选择:
1.执行您所做的操作并填充用户名字符串变量。
2.删除空字符 - 修剪用户名字段。
其他选择:
string aUserName = "Test";
var query = users.select(x => string.Join(string.Empty, x.UserName).TrimEnd()).
where(x => x==aUserName)
(这将返回用户名而不是整个用户对象)
希望这有帮助。
答案 1 :(得分:1)
我们在论坛上回复了您here 如果您遇到任何问题,请通知我们。