9
  public class UserBuilding
    {
        [Key, Column(Order = 0)]
        public int UserId { get; set; }
        [Key, Column(Order = 1)]
        public int BuildingId { get; set; }
        public int BuildingLevel { get; set; }
    }

ユーザーが所有するさまざまな建物をすべて返却したい場合は、次のようにします。

database.UserBuildings.Where(b => b.UserId == userId);

私の質問は、特定のユーザーから特定の建物を返却したい場合はどうなりますか?これを行うための最も「効率的な」方法は何でしょうか?次よりも良い方法(組み込み関数など)はありますか?

database.UserBuildings.Where(b => b.UserId == userId && b.BuildingId == buildingId);
4

1 に答える 1

17

DbSet.Findメソッドを探していると思います。このメソッドは、主キーによってエンティティを検索します。複合主キーがある場合は、モデルで定義された順序でキー値を渡します。

var userBuilding = database.UserBuildings.Find(userId, buildingId);
于 2013-02-08T21:42:30.373 に答える