1

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

4

2 回答 2

2

您有两个选择:
1. 执行您所做的并填充用户名字符串变量。
2.删除空字符 - 修剪用户名字段。

其他选项:

string aUserName = "Test";
var query = users.select(x => string.Join(string.Empty, x.UserName).TrimEnd()).
                  where(x => x==aUserName)

(这将返回用户名而不是整个用户对象)

希望这可以帮助。

于 2011-05-04T03:49:22.930 回答
1

我们已经在我们的论坛上回复了
如果您在提供的解决方案中遇到任何问题,请通知我们。

于 2011-05-10T12:25:25.427 回答