Last active
November 10, 2020 13:34
-
-
Save gistlyn/3ca519d6b039e142c84978e0cbb49b32 to your computer and use it in GitHub Desktop.
OrmLite Save API
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using ServiceStack; | |
using ServiceStack.Text; | |
using ServiceStack.OrmLite; | |
using ServiceStack.OrmLite.Sqlite; | |
using ServiceStack.DataAnnotations; | |
var dbFactory = new OrmLiteConnectionFactory(":memory:", SqliteDialect.Provider); | |
var db = dbFactory.Open(); | |
public class Artist { | |
public int Id { get; set; } | |
public string Name { get; set; } | |
[Reference] public List<Track> Tracks { get; set; } | |
public override string ToString() => Name; | |
} | |
public class Track { | |
[AutoIncrement] | |
public int Id { get; set; } | |
public string Name { get; set; } | |
public int ArtistId { get; set; } | |
public string Album { get; set; } | |
public int Year { get; set; } | |
public override string ToString() => Name; | |
} | |
db.CreateTable<Artist>(); | |
db.CreateTable<Track>(); | |
db.Save(new Artist { | |
Id = 1, Name = "Faith No More", | |
Tracks = new List<Track> { | |
new Track { Name = "Everythings Ruined", Album = "Angel Dust", Year = 1992 }, | |
new Track { Name = "Ashes to Ashes", Album = "Album of the Year", Year = 1997 }, | |
} | |
}, references:true); | |
var artist = db.SingleById<Artist>(1); | |
$"Artist: {artist.Dump()}".Print(); | |
var tracks = db.Select<Track>(); | |
$"Tracks: {tracks.Dump()}".Print(); | |
var artistWithTracks = db.LoadSingleById<Artist>(1); | |
$"Artist with Tracks: {artistWithTracks.Dump()}".Print(); | |
var track = new Track { Name = "The Gentle Art of Making Enemies", Album = "King for a Day", Year = 1995, ArtistId = 1 }; | |
db.Save(track); // Inserts new Track | |
$"Inserted Track: {db.SingleById<Track>(track.Id).Dump()}".Print(); | |
track.Name = "King for a Day... Fool for a Lifetime"; | |
db.Save(track); // Updates existing Track | |
$"Updated Track: {db.SingleById<Track>(track.Id).Dump()}".Print(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<packages> | |
<package id="System.Memory" version="4.5.4" targetFramework="net45" /> | |
<package id="ServiceStack.Text" version="5.10.0" targetFramework="net45" /> | |
<package id="ServiceStack.Client" version="5.10.0" targetFramework="net45" /> | |
<package id="ServiceStack.Common" version="5.10.0" targetFramework="net45" /> | |
<package id="ServiceStack.Interfaces" version="5.10.0" targetFramework="net45" /> | |
<package id="ServiceStack.OrmLite" version="5.10.0" targetFramework="net45" /> | |
<package id="ServiceStack.OrmLite.Sqlite.Windows" version="5.10.0" targetFramework="net45" /> | |
</packages> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment