实体框架,devArt和Oracle VarChar参数

时间:2011-05-03 16:54:47

标签: c# oracle entity-framework devart

您好:我正在使用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上的属性?

2 个答案:

答案 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 如果您遇到任何问题,请通知我们。