Commit 963b6e71 authored by Sebastian Burgstaller's avatar Sebastian Burgstaller

Added database schema support to Dapper.Rainbow

parent ae71b7be
......@@ -73,7 +73,7 @@ public int Update(TId id, dynamic data)
List<string> paramNames = GetParamNames((object)data);
var builder = new StringBuilder();
builder.Append("update [").Append(TableName).Append("] set ");
builder.Append("update ").Append(TableName).Append(" set ");
builder.AppendLine(string.Join(",", paramNames.Where(n => n != "Id").Select(p => p + "= @" + p)));
builder.Append("where Id = @Id");
......@@ -247,7 +247,7 @@ private string DetermineTableName<T>(string likelyTableName)
name = likelyTableName;
if (!TableExists(name))
{
name = typeof(T).Name;
name = "[" + typeof(T).Name + "]";
}
tableNameMap[typeof(T)] = name;
......@@ -257,7 +257,26 @@ private string DetermineTableName<T>(string likelyTableName)
private bool TableExists(string name)
{
return connection.Query("select 1 from INFORMATION_SCHEMA.TABLES where TABLE_NAME = @name", new { name }, transaction: transaction).Count() == 1;
string schemaName = null;
name = name.Replace("[", "");
name = name.Replace("]", "");
if(name.Contains("."))
{
var parts = name.Split('.');
if (parts.Count() == 2)
{
schemaName = parts[0];
name = parts[1];
}
}
var builder = new StringBuilder("select 1 from INFORMATION_SCHEMA.TABLES where ");
if (!String.IsNullOrEmpty(schemaName)) builder.Append("TABLE_SCHEMA = @schemaName AND ");
builder.Append("TABLE_NAME = @name");
return connection.Query(builder.ToString(), new { schemaName, name }, transaction: transaction).Count() == 1;
}
public int Execute(string sql, dynamic param = null)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment