Permalink
Fetching contributors…
Cannot retrieve contributors at this time
26 lines (22 sloc) 891 Bytes
using System;
using System.Data;
using ServiceStack.Text;
namespace ServiceStack.OrmLite
{
public class ConflictResolution
{
public const string Ignore = "IGNORE";
}
public static class OrmLiteConflictResolutions
{
public static void OnConflictIgnore(this IDbCommand dbCmd) => dbCmd.OnConflict(ConflictResolution.Ignore);
public static void OnConflict(this IDbCommand dbCmd, string conflictResolution)
{
var pos = dbCmd.CommandText?.IndexOf(' ') ?? -1;
if (pos == -1)
throw new NotSupportedException("Cannot specify ON CONFLICT resolution on Invalid SQL starting with: " + dbCmd.CommandText.SubstringWithElipsis(0, 50));
var sqlConflict = dbCmd.GetDialectProvider().SqlConflict(dbCmd.CommandText, conflictResolution);
dbCmd.CommandText = sqlConflict;
}
}
}