Is it possible to leverage System.Data.SqlClient.SqlDependency from within a .NET Core v1.1 application? It appears that most of the other classes and methods within System.Data.SqlClient are available except SqlDependency.
Essentially, I'm trying to subscribe to SQL notifications when table data changes to then update the client's UI, so I'm open to other ways to achieve this if SqlDependency is not available from .NET Core.
Thanks in advance! Here's my complete project.json file:
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.1.0",
"type": "platform"
},
"Microsoft.AspNetCore.Authentication": "1.0.0",
"Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
"System.IdentityModel.Tokens.Jwt": "5.0.0",
"Microsoft.AspNetCore.Authentication.OpenIdConnect": "1.0.0",
"Microsoft.AspNetCore.Authentication.Google": "1.0.0",
"Microsoft.AspNetCore.Authentication.JwtBearer": "1.0.0",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
"Microsoft.AspNetCore.StaticFiles": "1.1.0",
"Microsoft.EntityFrameworkCore": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0",
"Microsoft.Extensions.Configuration.Binder": "1.1.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
"Microsoft.Extensions.Configuration.Json": "1.1.0",
"Microsoft.Extensions.Logging.Console": "1.1.0",
"Microsoft.AspNetCore.Diagnostics": "1.1.0",
"Microsoft.AspNetCore.Identity": "1.1.0",
"Microsoft.AspNetCore.Mvc": "1.1.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
"Microsoft.AspNetCore.Rewrite": "1.0.0",
"Microsoft.AspNetCore.ResponseCompression": "1.0.0",
"Microsoft.AspNetCore.SignalR.Server": "0.2.0-*",
"Microsoft.AspNetCore.WebSockets": "0.2.0-*"
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"netstandard1.1": {
"imports": [
"dotnet5.6",
"portable-net45+win8",
"net461",
"dnxcore50"
]
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"publishOptions": {
"include": [
"Views",
"wwwroot",
"appsettings.json",
"appsettings.dev.json",
"web.config"
]
},
"scripts": {
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
-
1According to packagesearch.azurewebsites.net?q=SqlDependency it's not there. There is a chance though that it may come with .NET Standard 2.0, as over 5000 new APIs will be added to make migrations easier from .NET Framework to .NET CoreTseng– Tseng01/15/2017 10:34:23Commented Jan 15, 2017 at 10:34
-
@Tseng, I am looking for this too. Any update 4 months later? Or should I switch to owin and full framework to build SignalR server with SqlDependency?JP Hellemons– JP Hellemons05/10/2017 09:11:07Commented May 10, 2017 at 9:11
-
Asked about the same thing, but it doesn't look like there will be support for this in .net core twitter.com/DamianEdwards/status/866464629819555840DotnetShadow– DotnetShadow05/23/2017 00:16:31Commented May 23, 2017 at 0:16
-
Note: If you're planning on using SqlDependency with SQL Azure it won't work unless you have your own managed instance stackoverflow.com/questions/37640879Simon_Weaver– Simon_Weaver06/26/2019 22:08:32Commented Jun 26, 2019 at 22:08
2 Answers 2
There's a .Net Core based open source solution available on GitHub : https://github.com/dyatchenko/ServiceBrokerListener
I'm not sure about the performance however, because it seems that the multiple client-app listening for changes are creating dedicated queues. So maybe it doesn't scale as good as the original SqlDependency.
According to this https://github.com/dotnet/corefx/issues/8188 it will be there in .NET Core 2.1, but I haven't seen anything about whether the usage differs from .NET Framework. I hope it doesn't.
-
1Can someone confirm (link to docs?) that this did in fact ship in 2.1?ssmith– ssmith01/07/2019 16:20:55Commented Jan 7, 2019 at 16:20
-
1This link lists 2.1, 2.2 learn.microsoft.com/en-us/dotnet/api/…jaycer– jaycer01/22/2019 21:23:49Commented Jan 22, 2019 at 21:23
Explore related questions
See similar questions with these tags.