Вы можете использовать Single
или SingleOrDefault()
для этого:
// parse the string `ddlRoles.SelectedValue` into the appropriate type as `roleID`
var roleID = ParseRoleID(ddlRoles.SelectedValue);
var aRole = (from rol in aspnet_Roles.Include("aspnet_Users")
where rol.RoleId == roleID
select rol).Single();
Однако это вызовет исключение, если будет возвращено более одного объекта. Если вы просто хотите, чтобы первая сущность соответствовала регистру, вы можете использовать First()
или FirstOrDefault()
:
var roleID = ParseRoleID(ddlRoles.SelectedValue);
var aRole = (from rol in aspnet_Roles.Include("aspnet_Users")
where rol.RoleId == roleID
select rol).First();
Версии OrDefault
этих методов гарантируют, что вы не получите исключение, если нет совпадения. Вместо этого он вернет ноль.
Также:
Вместо использования ToString()
на RoleId
необходимо выполнить синтаксический анализ ddlRoles.SelectedValue
в соответствующий тип, прежде чем использовать его в запросе LINQ, поскольку некоторые методы (ToString()
является одним из них) не поддерживаются в запросе LINQ, который выполняется для БД.