Pregunta

Estoy probando DBLinq-0,18 y DBLinq desde SVN Tronco con MySQL y PostgreSQL. Sólo estoy usando una consulta muy simple, pero tanto en la base de datos DBLinq no está generando una cláusula WHERE. He confirmado mediante la activación de la tala declaración sobre PostgreSQL para comprobar exactamente lo solicite DBLinq está enviando.

Mi consulta LINQ es:

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;

La consulta funciona bien, pero el SQL generado por DBLinq es de la forma:

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

No existe cláusula WHERE que significa DBLinq debe estar tirando toda la tabla abajo antes de ejecutar la consulta LINQ.

Alguien ha tenido alguna experiencia con DBLinq y saber lo que podría estar haciendo mal?

¿Fue útil?

Solución

He encontrado el problema y no tiene nada que ver con DBLinq.

Yo había estado probando algunas cosas hacia fuera de IronRuby y dentro de ella hay una asamblea llamada Microsoft.Scripting.Core que duplica el espacio de nombres System.Data.Linq (por qué lo hace que no sé).

Con una referencia al ensamblado Microsoft.Scripting.Core mi aplicación DBLinq prueba sería compilar y ejecutar bien, pero tendría la cláusula where que faltan en el SQL. Extracción de la referencia de ensamblado resultó en la donde correctamente siendo generado cláusula.

Otros consejos

Me gustaría evitar el uso de DBLinq de código de producción ... muchos de LINQ a SQL características de no se implementan, y caminar a través del código fuente muestra un bajo nivel de madurez ... muchos de los métodos no se apliquen o marcados como "sin terminar".

... que ha sido advertido!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top