10

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%" ]
  }
}
Ralph Willgoss
  • 11,750
  • 4
  • 64
  • 67
ianpoley
  • 552
  • 2
  • 10
  • 20
  • 1
    According to http://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 Core – Tseng Jan 15 '17 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 May 10 '17 at 09:11
  • Asked about the same thing, but it doesn't look like there will be support for this in .net core https://twitter.com/DamianEdwards/status/866464629819555840 – DotnetShadow May 23 '17 at 00:16
  • Note: If you're planning on using SqlDependency with SQL Azure it won't work unless you have your own managed instance https://stackoverflow.com/questions/37640879 – Simon_Weaver Jun 26 '19 at 22:08

2 Answers2

7

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.

Micaël Félix
  • 2,697
  • 5
  • 34
  • 46
5

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.

Miriam Farber
  • 18,986
  • 14
  • 61
  • 76
Aaron Hardin
  • 51
  • 1
  • 4
  • 1
    Can someone confirm (link to docs?) that this did in fact ship in 2.1? – ssmith Jan 07 '19 at 16:20
  • 1
    This link lists 2.1, 2.2 https://learn.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqldependency?redirectedfrom=MSDN&view=netframework-4.7.2 – jaycer Jan 22 '19 at 21:23