Tengo 3 campos: urlName
, displayName
y active
. Esto es verificar el registro de edición. Lo que quiero hacer aquí es marcar UrlName
es único en Db, pero al mismo tiempo, si el usuario ya ha guardado la Url pero cambió DisplayName
y Active
, entonces el registro debería actualizarse.Problema de consulta LINQ. Necesito verificar si existe
Cualquiera me dice cómo resolver eso.
public bool NothingExceptUrlNameExists(string urlName, string displayName, bool active)
{
return (from p in _db.SubMenus
where p.UrlName == urlName && (p.DisplayName != displayName || p.DisplayName == displayName) && (p.Active != active || p.Active == active)
select p).Any();
}
de Actualización del Registro como
TryUpdateModel(existingMenu);
_menu.Add();
Esto es lo que quiero lograr
Mis otros 2 valores deben añadirse en Query DisplayName y activa. Supongamos que "Contacto" UrlName ya está en DB. Estoy cargando valores de la lista desplegable que muestra UrlName = "Acerca de", DisplayName = "Acerca de nosotros", Activo = verdadero. Ahora editando el registro. Aquí están las condiciones para que coincida.
1 - UrlName = "Acerca de", DisplayName = "Acerca de la prueba", Activo = verdadero -> Esto debería actualizarse.
2 - UrlName = "Acerca de", DisplayName = "Sobre nosotros", Activo = falso -> Esto debería actualizarse.
3 - UrlName = "Acerca de", DisplayName = "Acerca de la prueba", Activo = falso -> Esto debería actualizarse.
Importante: 4 - UrlName = "newnotexist", DisplayName = "Acerca de la prueba", Activo = falso ->Esto debería actualizar UrlName y descansar si se cambia.
5 - UrlName = "Contacto", DisplayName = "Acerca de la prueba", Activo = falso ->Esto no debería actualizarse y generar un error.
Espero que entiendas lo que quiero hacer.
'(p.DisplayName! = || idioma p.DisplayName == idioma)' y '(p.Active! = || activa p.Active == activa)' siempre será cierto. Además, no está muy claro qué estás tratando de lograr. ¿Puedes reformular/elaborar? –
@ Bala R, gracias por la respuesta. Esto es para Editar formulario. UrlName es único en DB pero DisplayName y Active no lo son. Tengo formulario con estos 3 campos. Cargará 3 campos desde la selección del menú desplegable. Ahora quiere editar DisplayName y Active con el mismo UrlName del que debería actualizar. En otro escenario, quiere cambiar urlname diferente de lo que es load (podría cambiar otros valores) pero no es único e intenta guardarlo, lo que debería dar error. ¿Ahora lo veo claro? – Pirzada