我正在使用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的经验,知道我可能做错了什么?
发布于 2009-04-19 15:45:56
我发现了问题,但这与DBLinq无关。
我一直在测试IronRuby中的一些东西,其中有一个名为Microsoft.Scripting.Core的程序集,它复制了System.Data.Linq命名空间(为什么它会这样,我不知道)。
使用对Microsoft.Scripting.Core程序集的引用,我的测试DBLinq应用程序可以很好地编译和运行,但在SQL上会缺少where子句。删除程序集引用导致正确生成where子句。
发布于 2009-11-05 21:59:48
我会避免在产品代码中使用DBLinq ...Linq-To-SQL的许多特性都没有实现,浏览一下源代码就会发现成熟度很低……许多方法都没有实现或标记为“未终止”。
你已经被警告过了!
https://stackoverflow.com/questions/760665
复制相似问题