开发者

load record by predicate/lambda via vb.net linq

im pretty confused about lambdas and actually im not even sure i need them here

what im trying to do here is write a function that will return an object from a certain table with a certain criteria

so lets say i can write

function GetRecord(TableName as string,Criteria as string) as object
'do the linq-stuff
end function

now i dont care if the paremeters are strings or lambdas or whatever, but the end result must be that at runtime i dont know which table and which criteria will be used

as sometimes i need to get a customer record by email and sometimes a product by id etc.

if possible i would prefer returning a list of matching objects and then i woul开发者_StackOverflowd just use .firstordefault when i want 1 (such as by id...)

thank you , as always, for taking the time to read this and answer!

all the best


Have you considered using Dynamic LINQ?

Example:

load record by predicate/lambda via vb.net linq


Parsing an expression tree can be a challenging but rewarding method of solving this issue. I think it's overkill and I'd go with Dynamic Linq as decyclone mentioned.

A benefit of parsing the expression tree, however, is that you can have compile time checking of the submitted criteria.

Here are some articles that helped me.

How to: Implement an Expression Tree Visitor: http://msdn.microsoft.com/en-us/library/bb882521(VS.90).aspx

Building a custom IQueryable Provider: http://blogs.msdn.com/b/mattwar/archive/2008/11/18/linq-links.aspx

Walkthrough: Creating an IQueryable LINQ Provider: http://msdn.microsoft.com/en-us/library/bb546158(v=VS.90).aspx

Expression Tree Basics: http://blogs.msdn.com/b/charlie/archive/2008/01/31/expression-tree-basics.aspx

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜