I'm working on an Angular application that interacts with a .NET 6 OData backend. I have a scenario where I need to decrypt a Tax ID for a profile and return it to the UI. Currently, I am using a direct HTTP GET call like this: this.http.get<any>( `/api/odata/testacquire/TestSubProfile/DecryptTaxId(encryptedTaxId='${encodeURIComponent(profile.taxId)}')` ).subscribe({ next: (decryptedTaxId) => { // ...handle result... } }); This works, but I was advised to use an OData function call instead of a raw HTTP GET for better integration and maintainability. What I have set up: EDM Model: In my backend, I have registered a collection function in the EDM model Controller: My controller inherits from ODataController (via a base class) and implements the function OData Routing: OData is configured in Program.cs What I'm trying to accomplish: I want to replace the raw HttpClient.get call in Angular with a proper OData function call, using the OData client library (e.g., angular-odata), so that the frontend is not manually constructing URLs for OData functions. What I've tried: Using the OData client’s .function('DecryptTaxId').call({ encryptedTaxId: ... }) pattern. Ensured the backend function is registered and the controller is set up for OData. The problem: The direct http.get works, but when I try to use the OData function call, I get a 404 or the function is not found. I want to know the correct way to call an OData function from Angular, and what else I might be missing in my backend or frontend setup. What is the recommended way to call an OData function from Angular (using angular-odata or similar), and what backend requirements must be met for this to work? Any help or examples will be greatly appreciated! Continue reading...