fsprojects / SQLProvider

A general F# SQL database erasing type provider, supporting LINQ queries, schema exploration, individuals, CRUD operations and much more besides.
https://fsprojects.github.io/SQLProvider
Other
564 stars 144 forks source link

SSDT options #698

Closed JordanMarr closed 3 years ago

JordanMarr commented 3 years ago

I am considering creating an SSDT provider that would allow people using SSDT to get their table, column and relationships (and possibly views as well) from SSDT scripts. I would imagine this to be something like Providers.MsSqlServer.SSDT.fs so that it could be based off the the MsSqlServer provider but it would parse the SSDT scripts instead of doing a schema query.

I just wanted to see if there was any interest in having that as an option for SQLProvider before I kick the tires any more.

Thorium commented 3 years ago

Sounds good, I'll merge and release happily if you get it done.

JordanMarr commented 3 years ago

I'm getting an error when I run the build script:

"C:_github\SQLProvider\src\SQLProvider\SqlProvider.fsproj : error MSB4057: The target "Rebuild" does not exist in the project."

Thorium commented 3 years ago

Microsoft.FSharp.Target is missing from your path: https://github.com/fsprojects/Paket/issues/2264#issuecomment-506368815

JordanMarr commented 3 years ago

So I have a dependency on "Microsoft.SqlServer.Management.SqlParser.dll". After looking at the way other providers dynamically load their ADO.NET providers, I decided to also make the Microsoft.SqlServer.Management.SqlParser.dll dynamically loaded.
But I'm wondering if that is actually necessary; it seems like it would be easier and maybe better to just add that package as a regular dependency. What do you think?

Thorium commented 3 years ago

For now, unless/until the deployment model is changed, I'd prefer the dynamic loading even if it gives a little bit more initial work for the user. See: https://github.com/fsprojects/SQLProvider/issues/645#issuecomment-642194119

JordanMarr commented 3 years ago

Microsoft.FSharp.Target is missing from your path: fsprojects/Paket#2264 (comment)

I'm just not getting anywhere on this build script issue. I don't seem to have any Microsoft.FSharp.Target files on my machine that a Rebuild target, so I can't even run the build. I have VS2019 Professional installed. Maybe there is there something else that I need to install?

Thorium commented 3 years ago

Are you using the developer tools command prompt in admin mode?

The build script runs the unit tests but there is no any other real reason to even run it... and you could run the tests in FSI.

Can you do a PR?

JordanMarr commented 3 years ago

You're right, I suppose I don't really need the full build to work locally. I'll try to make a documentation page today and then will submit a PR.