4

下記のSQLクエリをVBでLINQクエリに変換する方法を教えてください。

SELECT FacilityID 
FROM tblFacilityProjects 
WHERE FreedomEnabled = True and ProjectID in (840,841,842)
4

3 に答える 3

4

このような何かが私が思うにそれを行う必要があります:

Dim projectIds = New Integer() {840, 841, 842}
Dim result = From proj In db.tblFacilityProjects _
             Where proj.FreedomEnabled = True AndAlso _
                   projectIds.Contains(proj.ProjectID) _
             Select FacilityID
于 2012-06-28T21:50:19.543 に答える
0

プロジェクト ID のリストを作成する

Dim list As New List(Of Integer)
list.Add(840)
list.Add(841)
list.Add(842)

これを LINQ で使用する必要があります。

dim facilityId = from fp in tblFacilityProjects 
                 where FreedomEnabled == true
                 where list.Contains(ProjectID)
                 select new
                 {
                   FacilityID=fp.FacilityID
                 }

VB.net で行う必要があるかもしれない微調整がいくつかあるはずです。

于 2012-06-28T21:53:18.170 に答える
0

SQL での IN クエリ

SELECT [Id], [UserId]
FROM [Tablename]
WHERE [UserId] IN (2, 3)

LINQ での IN クエリ

ContainsVBの機能を利用しています。

Dim coll As Integer() = {2, 3}
Dim user = From u In tablename Where coll.Contains(u.UserId.Value) New 
From {
    u.id, u.userid
}

http://www.c-sharpcorner.com/blogs/4479/sql-in-and-not-in-clause-in-linq-using-vb-net.aspx

于 2012-06-28T21:48:01.667 に答える