Skip to content

Instantly share code, notes, and snippets.

@gistlyn
Last active June 22, 2019 21:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gistlyn/7075e53e1fe69d3da12996677b5f3a5a to your computer and use it in GitHub Desktop.
Save gistlyn/7075e53e1fe69d3da12996677b5f3a5a to your computer and use it in GitHub Desktop.
Configure AppHost to use OrmLite with SQL Server
dotnet add package ServiceStack.OrmLite.SqlServer
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using ServiceStack;
using ServiceStack.Data;
using ServiceStack.DataAnnotations;
using ServiceStack.OrmLite;
namespace MyApp
{
public class MyTable
{
[AutoIncrement]
public int Id { get; set; }
public string Name { get; set; }
}
public class ConfigureDb : IConfigureServices, IConfigureAppHost
{
IConfiguration Configuration { get; }
public ConfigureDb(IConfiguration configuration) => Configuration = configuration;
public void Configure(IServiceCollection services)
{
services.AddSingleton<IDbConnectionFactory>(new OrmLiteConnectionFactory(
Configuration.GetConnectionString("DefaultConnection")
?? "Server=localhost;Database=test;User Id=test;Password=test;MultipleActiveResultSets=True;",
SqlServer2012Dialect.Provider));
}
public void Configure(IAppHost appHost)
{
appHost.GetPlugin<SharpPagesFeature>()?.ScriptMethods.Add(new DbScriptsAsync());
using (var db = appHost.Resolve<IDbConnectionFactory>().Open())
{
if (db.CreateTableIfNotExists<MyTable>())
{
db.Insert(new MyTable { Name = "Seed Data for new MyTable" });
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment