Entity framework: как вернуть строку из таблицы с составными ключами?
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);
1 ответов
Я думаю, что вы lookding для в dbset.Найти метод. Этот метод находит сущность по первичному ключу. Если у вас есть составной первичный ключ, передайте значения ключей в порядке, определенном в модели:
var userBuilding = database.UserBuildings.Find(userId, buildingId);