我让用户在UI中检查实验室设施。我想使用linq来获取他们已经检查过的所有实验室的相应记录。
基本上,
Dim myRecs = (From l As EpiData In myDataContext.EPIDatas Where l.facility= _
one of the checked labs
基本上,我需要编写一个linq查询,其中匹配的“字符串”在运行时确定。有没有办法轻松做到这一点?我知道那里有一个叫做动态LINQ的库,但是(1)它是在C#中我用VB编写的(2)我真的只是在为这个案例寻找一个简单的解决方案。
有什么建议吗?
答案 0 :(得分:3)
使用.Contains
Dim myRecs = (From l As EpiData In myDataContext.EPIDatas
Where listOfCheckedLabs.Contains(l.facility))
作为旁注,您可以安全地使用VB.Net中的C#库,反之亦然。当库不符合“CLS”时,可能会出现问题。例如,如果C#库具有返回unsigned int
的公共成员,如果VB.NET不支持内存服务,则会出现这种情况。通常情况并非如此,因为库作者应该以符合CLS的代码为目标。
我已经使用Linq to SQL和Linq to Entities进行了测试,只是为了让自己确信这是有效的 - 它确实如此。
使用C#我有这样的代码可以正常工作(使用LINQPad):
var list = new List<string>{ "Test", "Test 2" };
var query = Models.Where (m => list.Contains(m.Description));