我正在使用一个我无法控制的设计的现有数据库,我正在使用EF4,并使用LINQ进行查询。我在VB.Net工作,但很乐意翻译c#解决方案。
我想从表格中提取记录,其中两个字段与列表中的一对项目匹配。
所以我有一个
列表Public Class RequestInfo
Public Property INSP_ROUTINE_NM As String
Public Property FEATURE_ID As String
End Class
我想查询一个表并拉出任何记录,其中INSP_ROUTINE_NM和FEATURE_ID都匹配一个请求信息项。
我可以在任一字段
上使用包含足够的内容 Dim Features = (From F In MLDb.TBL_FeatureInfoSet _
Where (C_Request.Select(Function(x) x.INSP_ROUTINE_NM)).Contains(F.INSP_ROUTINE_NM) Select F.FEATURE_ID, F.FEATURE_RUN_NO, F.INSP_ROUTINE_NM).ToList
我可以使用两个包含调用,但这会拉出任何记录,其中两个记录在列表中的某个位置匹配,不一定是请求中的任何一对。
答案 0 :(得分:0)
你可以试试这个:
<强> C#强>
var Features= (from f in MLDb.TBL_FeatureInfoSet
let q = C_Request.Select(x=>x.INSP_ROUTINE_NM)
where q.Contains(f.INSP_ROUTINE_NM) || q.Contains(f.INSP_ROUTINE_NM)
// where q.Contains(f.INSP_ROUTINE_NM) && q.Contains(f.INSP_ROUTINE_NM)
select new {f.FEATURE_ID, f.FEATURE_RUN_NO}).ToList();