我正在使用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子句,这意味着在运行Linq查询之前,DBLinq必须将整个表拉下来。
有没有人对DBLinq有任何经验并且知道我可能做错了什么?
答案 0 :(得分:1)
我发现了问题,这与DBLinq无关。
我一直在测试一些来自IronRuby的内容,其中有一个名为Microsoft.Scripting.Core的程序集,它复制了System.Data.Linq命名空间(为什么我这样做我不知道)。
通过引用Microsoft.Scripting.Core程序集,我的测试DBLinq应用程序将编译并运行正常,但SQL上将缺少where子句。删除程序集引用导致正确生成where子句。
答案 1 :(得分:0)
我避免将DBLinq用于生产代码......许多Linq-To-SQL的功能都没有实现,并且遍历源代码显示成熟度很低......许多方法都没有实现或标记为“未终止”。
......你被警告了!