Skip to content

Instantly share code, notes, and snippets.

@mythz
Last active December 17, 2017 11:59
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 mythz/a212eb962576805c63237f948201d51e to your computer and use it in GitHub Desktop.
Save mythz/a212eb962576805c63237f948201d51e to your computer and use it in GitHub Desktop.
OrmLite 1:1 Users and Roles
using ServiceStack;
using ServiceStack.Text;
using ServiceStack.OrmLite;
using ServiceStack.OrmLite.Sqlite;
using ServiceStack.DataAnnotations;
using ServiceStack.Model;
var dbFactory = new OrmLiteConnectionFactory(":memory:", SqliteDialect.Provider);
var db = dbFactory.Open(); // Open ADO.NET DB Connection
public partial class Users : IHasId<int>
{
[AutoIncrement]
public int Id { get; set; }
[Required]
public string Email { get; set; }
[Required]
public string Password { get; set; }
[References(typeof(Roles))]
[Required]
public int RolesId { get; set; }
[Reference]
public Roles Roles { get; set; }
}
public partial class Roles : IHasId<int>
{
[AutoIncrement]
public int Id { get; set; }
[Required]
public string Name { get; set; }
}
db.CreateTable<Roles>();
db.CreateTable<Users>();
db.Insert(new Roles { Name = "Role 1" });
db.Insert(new Roles { Name = "Role 2" });
db.Insert(new Users { Email = "user1@gmail.com", Password = "test", RolesId = 1 });
db.Insert(new Users { Email = "user2@gmail.com", Password = "test", RolesId = 1 });
db.Insert(new Users { Email = "user3@gmail.com", Password = "test", RolesId = 2 });
var user1 = db.LoadSelect<Users>(x => x.Id == 1);
user1.PrintDump();
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="ServiceStack.Text" version="5.0.0" targetFramework="net45" />
<package id="ServiceStack.Interfaces" version="5.0.0" targetFramework="net45" />
<package id="ServiceStack.Common" version="5.0.0" targetFramework="net45" />
<package id="ServiceStack.OrmLite" version="5.0.0" targetFramework="net45" />
<package id="ServiceStack.OrmLite.Sqlite" version="5.0.0" targetFramework="net45" />
</packages>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment