Skip to content
This repository has been archived by the owner on Dec 24, 2022. It is now read-only.

Commit

Permalink
Change SqlServerStringConverter to use VarChar when !UseUnicode
Browse files Browse the repository at this point in the history
  • Loading branch information
mythz committed Nov 15, 2016
1 parent b76a470 commit fd8cc1d
Showing 1 changed file with 16 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
using System;
using System.Data;
using System.Data.SqlClient;
using ServiceStack.DataAnnotations;
using ServiceStack.OrmLite.Converters;

namespace ServiceStack.OrmLite.SqlServer.Converters
{
public class SqlServerStringConverter : StringConverter
{
public override string MaxColumnDefinition
{
get { return UseUnicode ? "NVARCHAR(MAX)" : "VARCHAR(MAX)"; }
}
public override string MaxColumnDefinition => UseUnicode ? "NVARCHAR(MAX)" : "VARCHAR(MAX)";

public override string GetColumnDefinition(int? stringLength)
{
Expand All @@ -24,5 +23,18 @@ public override string GetColumnDefinition(int? stringLength)
? "NVARCHAR({0})".Fmt(safeLength)
: "VARCHAR({0})".Fmt(safeLength);
}

public override void InitDbParam(IDbDataParameter p, Type fieldType)
{
base.InitDbParam(p, fieldType);

var sqlParam = p as SqlParameter;
if (sqlParam == null) return;

if (!UseUnicode)
{
sqlParam.SqlDbType = SqlDbType.VarChar;
}
}
}
}

0 comments on commit fd8cc1d

Please sign in to comment.