【发布时间】:2014-04-03 20:53:34
【问题描述】:
Dim objModel As New HireBPCEntities
Dim SuspenseEntry = From M In objModel.tblSuspenseEntries Where strIDsToApprove.Contains(M.ID)
For Each Entry In SuspenseEntry.ToList()
Dim tblSE As tblSuspenseEntry = DirectCast(Entry, tblSuspenseEntry)
tblSE.Exclude_YN = "N"
//Some other code
objModel.SaveChanges()
Next
这里的 strIDsToApprove 是逗号分隔值。 即 strIDsToApprove = "1,2,4,7" 或者有时 strIDsToApprove ="12" (用户可以选择一个或多个记录)
我的问题是当 strIDsToApprove ="12" 时,如果我在上面的代码中使用包含,则 LINQ 会获得 3 条 ID 为 1,2 和 12 的记录。在这种情况下,我只需要 ID 为“12”的记录。
这相当于 SQL 从 tblSuspenseEntry 中选择 * 其中 (12) 中的 ID --返回一行 ID=12
我在这里缺少什么?如何使用实体框架编写“IN”子句。
【问题讨论】:
-
strIDsToApprove应该是整数的解析数组,而不是字符串。
标签: asp.net vb.net entity-framework