0

セレクトでセレクトに問題があります。

ユーザーIDを選択している()のselectクエリは、IDEによって高く評価されていません。選択内で選択をどのように達成しますか?

Dim newctx As teckModel.teckEntities
        Dim pending = From c In newctx.my_aspnet_membership Where c.userId = (From c In newctx.my_aspnet_usersinroles Where c.roleId = 8 Select c.userId) Select c.Email, c.CreationDate, c.LastLoginDate
4

2 に答える 2

1

equals演算子は単一の値を想定していますが、2番目のlinqステートメントはIEnumerableを返しています。IEnumerableで使用する.Contains()か、サブクエリをさらに絞り込んで、単一のエンティティのみを返す必要があります。

var pending = from x in newctx.my_aspnet_membership where
    (from y in newctx.my_aspnet_usersinroles where y.roleId==8 select y.userId).Contains(x.userId)
    select new { x.Email, x.CreationDate, x.LastLoginDate };
于 2012-09-23T22:52:38.183 に答える
1

またはを実行するContainAny、使用する必要がありますFirstOrDefault

Where (From c In newctx.my_aspnet_usersinroles Where c.roleId = 8 Select c.userId).Contains(c.userId)

また

c.userId == (From c In newctx.my_aspnet_usersinroles Where c.roleId = 8 Select c.userId).FirstOrDefault()
于 2012-09-23T23:11:43.073 に答える