Funciones personalizadas en expresiones LINQ

Funciones personalizadas en expresiones LINQ

En las últimas versiones de Entity Framework ciertos métodos que antes si eran aceptados, como también se podía realizar en SQL, han dejado de estar disponibles. Aquellas funciones heredadas directamente de SQL han quedado englobadas en la misma clase. Algo que antes era habitual pero no precisamente una buena forma de solucionar… las conversiones de tipos de datos, ¿quien no ha convertido un string en entero en SQL?

LINQ to Entities does not recognize the method 'XXXXXXX' method, and this method cannot be translated into a store expression
Leer más
TIP: Linq could not find an implementation of the query pattern

TIP: Linq could not find an implementation of the query pattern

En modelos de datos generados con LINQ de forma automática, el acceso separado en diferentes clases puede ocasionar errores del tipo:

CS1936	Could not find an implementation of the query pattern for source type 'DbSet<nombreTabla>'.  'Where' not found.

A priori puede parecer un error en la implementación, alguna modificación de clases incorrecta, siempre esta la posibilidad de volver a generar el modelo de datos, si el error persiste debemos comprar que tenemos referenciada el espacio de nombres de LINQ

using System.Linq;

Una error tan sencillo y obvio que puede resultar confuso de resolver.

Microsoft SQL Server Management Studio: cache is out of date

Es agosto, el software tambien necesita vacaciones…

Si durante las consultas a algunas tablas en MSSMS aparece el error «The Visual Studio componente cache is out of date» la solución rápida y sencilla pasa por vaciar la carpeta temporales de windows %TMP%

C:\Users\nombre_usuario_windows\AppData\Local\Temp\

Si además el servidor SQL esta en medio de la playa mientras tu sigues programando, puedes probar a seguir con la limpieza de más memorias intermedias, si utilizas Server 2016 o Azure puedes limpiar la cache de los procedimientos de la base de datos:

USE NombreDeMiBBDD;
GO
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;

 

Mientras esperas que la consulta devuelva los valores esperados ;D