using System.Collections.Generic;
using System.Data.SqlClient;
public static void Main()
var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServer());
var equity = new Equity()
equity.DividendYield = 3;
equity.Modified = DateTime.Now;
FiddleHelper.WriteTable("1 - Security", connection.Query<Invoice>("SELECT * FROM Security"));
FiddleHelper.WriteTable("2 - Equity", connection.Query<InvoiceMeta>("SELECT * FROM Equity"));
public static void SetGlobalMapping()
DapperPlusManager.Entity<Security>().Identity(x => x.ID, true);
public abstract class Security
public int ID { get; set; }
public string Ticker { get; set; }
public string Name { get; set; }
public string CUSIP { get; set; }
public DateTime Modified {get; set; }
public class Equity : Security
public int SecurityID { get; set; }
public double DividendYield { get; set; }
public static void CreateDatabase()
var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServer());
CREATE TABLE [dbo].[Security]
[ID] [INT] IDENTITY(100, 1) PRIMARY KEY NOT NULL,
[Ticker] [VARCHAR](50) NOT NULL,
[Name] [VARCHAR](255) NOT NULL,
[CUSIP] [VARCHAR](50) NOT NULL,
[Modified] DATETIME NOT NULL,
CREATE TABLE [dbo].[Equity]
[SecurityID] [INT] PRIMARY KEY NOT NULL REFERENCES dbo.[Security](ID),
[DividendYield] FLOAT NOT NULL