I ont une fonction scalaire:Entity Framework mappage de fonction scalaire
CREATE FUNCTION [dbo].[CheckLocation]
(
@locationId Int
)
RETURNS bit
AS
BEGIN
//code
END
Je veux l'utiliser dans le contexte Entity Framework.
J'ai ajouté ce dans le fichier * .edmx:
<Function Name="CheckLocation" ReturnType="bit" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="true" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo" >
<Parameter Name="locationId" Type="int" Mode="In" />
</Function>
J'ai aussi créé une classe partielle avec la méthode décorée avec EdmFunctionAttribute:
public partial class MainModelContainer
{
[EdmFunction("MainModel.Store", "CheckLocation")]
public bool CheckLocation(int locationId)
{
throw new NotSupportedException("Direct calls not supported");
}
}
J'essaie d'utiliser cette fonction comme celui-ci :
Context.CheckLocation(locationId);
Et obtenir NotSupportedException ("direct appels non pris en charge"). Cela fonctionne dans la méthode Select, mais cela ne me convient pas. Aidez s'il vous plaît! Comment puis-je appeler cette fonction sans méthode select?
Est-ce possible d'utiliser des FDU pas dans le produit dans l'EF 4.5? – DeeRain
vous devriez pouvoir l'utiliser dans une clause .Where aussi – Brian