こんにちは、私はFEATURESET Idの配列を持って、私の車の表は、FeatureSets としてサブテーブルを持っている私は、SQLクエリと同様に LinqToSqlサブEntiity複数と演算子
SELECT [t0].[ID]
FROM [dbo].[SearchResultView] AS [t0]
Join [dbo].[VehicleFeatureSet] AS [t1] on t0.ID = t1.VehicleID
where t1.FeatureSetID = 1 and t1.FeatureSetID= 2 and t1.FeatureSetID= 3
を書いた私が試してみました。しかし、私は
var features = Request.QueryString["FeatureSets"].Split(',').ToList().ConvertAll(new Converter<string, int>(StrinToint));
IQueryable<SearchResultView> result = db.SearchResultViews.Where(m => m.Active == true);
foreach (var featuree in features)
{
result = result.Where(m => m.VehicleFeatureSets.Any(c => c.FeatureSetID == featuree));
}
は、どのように私はこのようなこのLINQクエリ
Mattytommoによって指摘されているように、SQLクエリには常に偽( 't1.FeatureSetID = 1 and ...')する述語が含まれています。面白いのは、私はあなたのlinqが達成したいものとまったく同じだと思いますが、もちろん生成されるSQLは異なります。私はそれに '存在 'が含まれていると思うが、それを含んでいるはずだ。これは、 'VehicleFeatureSet'に_both_ 1 _and_ 2 _and_ 3を持つ' SearchResultView'レコードが必要であるという前提の下でです。 –