3

我正在使用 MySQL 和 Postgresql 测试来自 SVN Trunk 的 DBLinq-0.18 和 DBLinq。我只使用了一个非常简单的查询,但在两个数据库上 DBLinq 都没有生成 Where 子句。我已经通过打开 Postgresql 上的语句记录来确认 DBLinq 正在发送的确切请求。

我的 Linq 查询是:

MyDB db = new MyDB(new NpgsqlConnection("Database=database;Host=localhost;User Id=postgres;Password=password"));

var customers = from customer in db.Customers
                where customer.CustomerUserName == "test"
                select customer;

查询工作正常,但 DBLinq 生成的 SQL 格式如下:

select customerusername, customerpassword .... from public.customers

没有 Where 子句,这意味着 DBLinq 必须在运行 Linq 查询之前将整个表拉下来。

有没有人对 DBLinq 有任何经验并且知道我可能做错了什么?

4

2 回答 2

1

我发现了问题,它与 DBLinq 无关。

我一直在测试 IronRuby 的一些东西,其中有一个名为 Microsoft.Scripting.Core 的程序集,它复制了 System.Data.Linq 命名空间(我不知道它为什么这样做)。

参考 Microsoft.Scripting.Core 程序集,我的测试 DBLinq 应用程序可以正常编译和运行,但 SQL 中缺少 where 子句。删除程序集引用会导致正确生成 where 子句。

于 2009-04-19T15:45:56.007 回答
0

我会避免将 DBLinq 用于生产代码...许多 Linq-To-SQL 的功能没有实现,并且浏览源代码显示成熟度较低...许多方法没有实现或标记为“未终止”。

...您已被警告!

于 2009-11-05T13:59:47.793 回答