Linq to sql DBLinq不生成where子句

Linq to sql DBLinq不生成where子句,linq-to-sql,dblinq,Linq To Sql,Dblinq,我正在使用MySQL和Postgresql从SVN主干测试DBLinq-0.18和DBLinq。我只使用了一个非常简单的查询,但在这两个数据库上,DBLinq都没有生成Where子句。我通过在Postgresql上打开语句日志来确认这一点,以准确地检查DBLinq发送的请求 我的Linq查询是: MyDB db = new MyDB(new NpgsqlConnection("Database=database;Host=localhost;User Id=postgres;Password=p

我正在使用MySQL和Postgresql从SVN主干测试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的经验,并且知道我可能做错了什么?

我发现了问题,这与DBLinq无关

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


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

我将避免对生产代码使用DBLinq。。。LINQtoSQL的许多特性都没有实现,仔细查看源代码会发现成熟度很低。。。许多方法未实现或标记为“未终止”


…你被警告了

可能问题在于如何监控提交的SQL,而不是实际生成的SQL。我对Postgresql非常熟悉,所以我使用该数据库来检查语句。我已经为它打开了调试日志记录,我100%确定DBLinq发送的查询是一个没有where子句的select语句。我已经在一个要求相当高的生产环境中使用DBLinq大约3个月了。我遇到的主要问题是性能。相对而言,每当DbLinq从lambda表达式生成SQL时,它都会大受欢迎。我正在用我自己的LINQtoSQL库来代替它,它非常基本。我只需要支持非常简单的查询,但我确实需要它的快速性,而且我现在需要使用Amazon的SimpleDB,以便我的库能够容纳Linq到SQL和Linq到SimpleDB。