現在、いくつかのテーブルがありますが、関連するテーブルはRestaurant
とReview
です。各レストランには複数のレビューがありますが、レビューにはレストランが1つしかありません。Entity Frameworkの異なるテーブルから平均を取得する
私はデータベースからレストランを検索するとき、私は各レストランのレビューの平均評価をします。
私は、指定された場所までの距離に基づいてレストランを選択します。
現在、私はここまで得ている:
public IEnumerable<Restaurant> GetRestaurantsCloseToCoords(DbGeography coordinates, int amountOfRestaurants)
{
using (var ctx = _context)
{
var data = ctx.Restaurants.OrderBy(x => x.Address.Coordinates.Distance(coordinates))
.Take(amountOfRestaurants)
.ToList();
return data;
}
}
は私のレストランのオブジェクトは、次のようになります。
public class Restaurant
{
public Guid Id { get; set; }
public string Name { get; set; }
public Address Address { get; set; }
public List<Tag> Tags { get; set; } = new List<Tag>();
public int PriceRange { get; set; }
public double AverageRating { get; set; }
}
私はforループを使用し、そのリスト内の各レストランの平均を計算することができ、しかし、私はそれが非常に遅いと確信しています。
私を助けることができる人はいますか?私はLINQでこれを保持することを好むだろうが、他のtechinquesもまあまあです!
もっと詳しく説明する必要がある場合は、事前に感謝してください!
ありがとうございました!私はEFで多くの経験がありません。あなたが推薦/リンクできるものはありますか? – RandomStranger
EFについては必ずしも必要ではありません。 C#に慣れているなら、Windowsサービスを書く方法、それをスケジュールする方法を調べるべきです。あなたは現在と同じようにデータベースと通信することができます。 – bit
大丈夫、ありがとう! – RandomStranger