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

SNOW-1858350: Compatibility with Entity Framework #426

Open
lawrence-vo opened this issue Mar 11, 2022 · 15 comments
Open

SNOW-1858350: Compatibility with Entity Framework #426

lawrence-vo opened this issue Mar 11, 2022 · 15 comments
Assignees
Labels
feature status-in_progress Issue is worked on by the driver team status-triage_done Initial triage done, will be further handled by the driver team

Comments

@lawrence-vo
Copy link

Can I use this project as a provider for the Entity Framework? I've noticed some threads previously that reference this as a want but I can't find any documentation on the steps required to make this work.

Thanks!

@cristiscu
Copy link

I'm also very interested in this, as we cannot use LINQ unless we use Entity Framework. I tried to get it done with the CData Snowflake provider, which is not free but claims they support this feature. I rather experienced problems.

@cristiscu
Copy link

This was never implemented or completed, but very convenient to have it closed by a bot :(

@lawrence-vo
Copy link
Author

Snowflake has advertised the use of the unistore for transaction workloads, which (correct me if I'm wrong) would make the some Snowflake tables function as traditional on prem SQL databases.

Surely, this would mean that Entity Framework integration is possible.

@colingreen-payroc
Copy link
Contributor

The lack of a LINQ API into Snowflake will undoubtedly weight against projects/teams choosing to use Snowflake generally. The switch to Snowflake from some other DB tech will require .NET DB access code to switch from EF Core based code with compile-time checked (and safe) LINQ queries, to preconstructed SELECT/INSERT/UPDATE, etc. statement strings. I suspect many teams will push back on that approach; I know I have been, and will continue to do so.

@sfc-gh-dszmolka sfc-gh-dszmolka self-assigned this Jun 8, 2023
@sfc-gh-dszmolka sfc-gh-dszmolka added status-triage Issue is under initial triage and removed status-triage Issue is under initial triage labels Jun 8, 2023
@sfc-gh-anugupta
Copy link
Collaborator

Hi All, we plan to add the support for Entity framework support, and it's in our backlog. I dont have any ETA yet, but we will prioritize it as we do the next quarter planning. We will keep this thread updated. Thanks all for your patience.

@WilliamDouglasUSI
Copy link

WilliamDouglasUSI commented Aug 12, 2023

I can't share any of the code we wrote, but I can tell you what we did to use Entity Framework with Snowflake.

Entity Framework is open source here on GitHub. The project EfCore.SqlServer is the SQL Server specific provider. Since the SQL syntax between SQL Server and Snowflake SQL is mostly identical, you can change the coding in this project to connect to Snowflake instead. Do this by:

  1. Remove the project dependency to Microsoft.Data.SqlClient and replace it with Snowflake.Data.
  2. Fix the data type mappings and the other compilation errors step 1 introduced.
  3. Changing the extension methods to accept Snowflake connection string.
  4. Fix SQL statement generation to remove brackets, fix casing, and paging syntax. Some of this will be in the EfCore.Relational project. Derive/override classes from that project into the altered EfCore.SqlServer project so the EfCore.Relational project can remain unaltered.
  5. Remove support for SQL Server specific features like temporal tables.

@sfc-gh-anugupta
Copy link
Collaborator

Hi All , we are planning to start with the dev work in early Nov and will be sharing updates as we progress . The dev team may have some questions as we build an early POC for it and will loop in the community for getting feedback .
Thanks for all your patience on it. We are looking into adding more ORM support across the Ecosystem in near future

@yoliva
Copy link

yoliva commented Dec 4, 2023

Hi @sfc-gh-anugupta, there has been any progress with this? we are looking forward to giving it a try :)

@sfc-gh-anugupta
Copy link
Collaborator

Thanks all for the patience . We do plan to open up our Private Preview for it in the coming month and will post updates on it . Based on the feedback we receive we will plan the next phases for it .

@sfc-gh-dszmolka sfc-gh-dszmolka added the status-in_progress Issue is worked on by the driver team label Feb 11, 2024
@Sielnix
Copy link

Sielnix commented Feb 18, 2024

I've implemented Snowflake EF core connector which uses official Snowflake.Data driver. Preview version is released - see it here: https://www.nuget.org/packages/EFCore.Snowflake/

@sfc-gh-dszmolka
Copy link
Contributor

thanks for your work ! we'll also keep this thread posted with the progress and the availability of the official preview EF connector once available.

@sfc-gh-dszmolka
Copy link
Contributor

sfc-gh-dszmolka commented Mar 5, 2024

📢 a quick status update: (partial) private preview of the feature started! Please reach out to your Snowflake Sales representative if you're interested and want to participate. This phase of the preview is closed (meaning only those will be participating, who applied and are/will be enrolled), with the following caveats:

  • the preview is partial and limited for a quick test at this stage.
  • at this moment we cannot commit to moving on with the private preview into later phases (public preview which would be open for everyone)
  • the testing window is only open until the end of March 2024

For those who are not yet a Snowflake customer, I'm afraid this stage of the feature preview is not available.

Who are already Snowflake customers and interested: do reach out to your Sales rep., enroll, test the feature; Product and Dev team is very keen on hearing the feedbacks. Thank you all in advance !

edit: ⚠️ please do not reach out to Snowflake Support for onboarding or technical issues related to the Entity Framework Private Preview, they won't be able to help.

@sfc-gh-dszmolka sfc-gh-dszmolka added the status-triage_done Initial triage done, will be further handled by the driver team label Mar 12, 2024
@sfc-gh-dszmolka
Copy link
Contributor

📢 Following an internal decision, we're continuing with the private preview phase as mentioned in the above post; so anyone still interested please do reach out to your Snowflake Account Team.

Thank you for your interest in this capability !

@bill-poole
Copy link

Can we please get an update on this feature? Can you provide an estimate for when this feature will be released for general use?

@sfc-gh-dszmolka
Copy link
Contributor

Per the latest information from Product team, current timeline for public preview is mid calendar year 2025, with a planned GA of second half of 2025. I'll post if any information becomes available to me about any changes regarding the above rough estimation.

Until then, please feel free to reach out to your account teams to get onboarded into the private preview if you're interested in trying the feature out.

@sfc-gh-dprzybysz sfc-gh-dprzybysz changed the title Compatibility with Entity Framework SNOW-1858350: Compatibility with Entity Framework Dec 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature status-in_progress Issue is worked on by the driver team status-triage_done Initial triage done, will be further handled by the driver team
Projects
None yet
Development

No branches or pull requests