开发者

Dynamic query with LINQ won't work

开发者 https://www.devze.com 2023-03-12 00:23 出处:网络
I\'ve tried a couple of ways to execute a simple query but without success. var result = db.Persons.Where(\"surname = bob\");开发者_JAVA技巧

I've tried a couple of ways to execute a simple query but without success.

var result = db.Persons.Where("surname = bob");  开发者_JAVA技巧

The above will give the error: No property or field 'bob' exists in type 'Person'

var result = db.Persons.Where("surname = 'bob'");  

The above will give the error: Character literal must contain exactly one character

Has anyone else had these problems and what did you do?

Isn't Dynamic LINQ suppose to work like this or are there older versions or something?

I've added the Dynamic.cs to my project and I'm using System.Linq.Dynamic.


When doing comparisons you need two == and also in order to avoid injection use the following overload:

var result = db.Persons.Where("surname == @0", "bob");

Also I would recommend you downloading and looking at the examples provided with the product you are using. Scott Gu has also blogged about it.


var result = db.Persons.Where("surname == \"bob\"");

would work, though you should make sure whatever bob really is is properly escaped too.

That said, you would do better to have something like this:

String bob = "bob"; // or whatever
var result = from p in db.Persons p
             where p.surname = bob
             select p 
0

精彩评论

暂无评论...
验证码 换一张
取 消