Cosmos: Support UDFs

Open
#15,338 2 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
30/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
csharp
Domain
database

Research direction

Start by reviewing the EF Core Cosmos provider and its query translation and mapping APIs, using the issue’s UDF example as the expected scenario. Determine whether an attribute or fluent API can map a property to a UDF result, and define completion around supported configuration and the corresponding generated query.

Written by the indexing model from the issue text.

Description

area-cosmos area-query customer-reported

I am wondering whether there is an attribute or a fluent API method that would allow me to tell EF Core to map an entity property to a result of a UDF invoked with that document as a parameter so that a context of the collection could be used to compute the value of the property from other documents in the collection.

Specifically, something like this:

SELECT {{ firstName: item.FirstName, lastName: item.LastName, test: udf.test(item) }} FROM AppDbContext item

As opposed to something like this which I assume the Cosmos provider already generates:

SELECT {{ firstName: item.FirstName, lastName: item.LastName, test: item.Test }} FROM AppDbContext item

Further technical details

EF Core version: Microsoft.EntityFrameworkCore.Cosmos 2.2.4
Database Provider: Microsoft.EntityFrameworkCore.Cosmos
Operating system: Windows 10
IDE: VS Code

Dominant language
C#
Stars
14.8k
Forks
3.4k
Avg merge
2d 5h
Merged PRs (30d)
134

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from dotnet/efcore

All issues in dotnet/efcore

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.