Entity Framework

Sentry provides an integration with EntityFramework through the of the Sentry.EntityFramework NuGet package.

Looking for EntityFramework Core? That integration is achieved through the Sentry.Extensions.Logging package.

Installation

Copied
Install-Package Sentry.EntityFramework -Version 3.8.3

This package extends Sentry main SDK. That means that besides the EF features, through this package you'll also get access to all API and features available in the main Sentry SDK.

Features

  • Queries as breadcrumbs
  • Validation errors

All queries executed are added as breadcrumbs and are sent with any event which happens on the same scope. Besides that, validation errors are also included as Extra.

Configuration

Add the Entity Framework 6 support to your project in one step:

  • When initializing the SDK, call the extension method AddEntityFramework() on SentryOptions. This will register all error processors to extract extra data, such as validation errors, from the exceptions thrown by Entity Framework.

Example configuration

For example, configuring an ASP.NET app with global.asax:

global.asax
Copied
using System;
using System.Configuration;
using Sentry;

public class MvcApplication : System.Web.HttpApplication
{
    private IDisposable _sentrySdk;

    protected void Application_Start()
    {
        _sentrySdk = SentrySdk.Init(o =>
        {
            // We store the DSN inside Web.config
            o.Dsn = ConfigurationManager.AppSettings["SentryDsn"];
            // Add the EntityFramework integration
            o.AddEntityFramework();
        });
    }

    // Global error catcher
    protected void Application_Error()
    {
        var exception = Server.GetLastError();
        SentrySdk.CaptureException(exception);
    }

    public override void Dispose()
    {
        _sentrySdk.Dispose();
        base.Dispose();
    }
}

Sample

Check out a complete working sample to see it in action.

Sample breadcrumbs in Sentry

Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) to suggesting an update ("yeah, this would be better").