Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementing additional provider for Azure Storage Tables #381

Open
rgn opened this issue Dec 29, 2023 · 1 comment
Open

Implementing additional provider for Azure Storage Tables #381

rgn opened this issue Dec 29, 2023 · 1 comment

Comments

@rgn
Copy link

rgn commented Dec 29, 2023

Hi there,

I really like the approach via specification and thinking if it is possible to create a provider for Azure Storage Tables. My first guess was to align to the EFCore implementation, but indeed Storage Tables to not provide IQueryable to push the queries down to the data layer.

Obviously, it's not feasible to transfer the whole table content to create an IQueryable over the retrieved data.

So my questions are:

  • Does it make sense and is it achievable to build an implementation besides EF?
  • How would a starting point look like? As we have to translate the query and take care about PartitionKey AND RowKey. From my perspective, you do not necessarily have the partition key on an entity.
@fiseni
Copy link
Collaborator

fiseni commented Dec 30, 2023

Hi @rgn,

The specification state is held in the form of expressions (not as IQueryable). Then the provider packages translate the state to a required form; in the case of EF, we apply the state on top of the DbSets.

So, if you can write queries for Azure Storage Tables using expressions, then we can create a provider for it. I haven't used the Azure Tables extensively yet. Can you provide some info what is the most common usage? What is the standard set of operations used in the applications? How do you query? How do you save data?

I see in the docs about the Azure Tables client library that you usually use expressions to build the queries. Is this the standard?

double priceCutOff = 6.00;
Pageable<OfficeSupplyEntity> queryResultsLINQ = tableClient.Query<OfficeSupplyEntity>(ent => ent.Price >= priceCutOff);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants