0

私のデータベースには、レストラン、料理、施設、料理の4つのテーブルがあります。これらのテーブルからデータを返すテーブルアダプターを作成しました。今、私は料理、施設、または料理のユーザー選択に基づいてデータをフィルタリングし、結果のレストランを返す必要があります。これが私の質問です:

    public string alldata(string location, string cuisines, string facility)
    {
        location = location.Replace('|', ',');
        facility = facility.Replace('|', ',');
        cuisines = cuisines.Replace('|', ',');
        string loc; string data = null; int id;
        DataSet3.DataTable1DataTable all = getall.GetAllData();

        IEnumerable<DataRow> query = from resturants in all.AsEnumerable()

                                     where ((location.Contains(resturants.City)) && (facility.Contains(resturants.FacilityName) && (cuisines.Contains(resturants.Type))))
                                     select resturants;
        foreach (DataSet3.DataTable1Row item in query)
        {
            name = item.Name;
            loc = item.Location;

            id = item.RestaurantID;
            data += name + "%" + loc +"%"+id+ "?";
        }
        return data; 


    }

このクエリは重複するエントリを返し、ANDを選択に適用しません。ハマった。私を助けてください。

4

1 に答える 1

0
IEnumerable<DataRow> query =    (from resturants in all.AsEnumerable()

                                         where ((location.Contains(resturants.City)) && (facility.Contains(resturants.FacilityName) && (cuisines.Contains(resturants.Type))))
                                         select resturants).Distinct()

UはDistinct()演算子を使用して、Linqで個別のレコードを取得できます

于 2013-01-23T06:57:46.657 に答える