Ben Dapper.NET kullanarak ve am ben gelecek kodu çalıştırdığınızda:Dapper.NET: varchar (4000) varsayılan
using (SqlConnection con = new SqlConnection(connectionString))
{
con.Open();
con.Execute(@" insert Clients(name) values(@Name)", new {Name = "John"});
con.Close();
}
o yürütür sorgu sonraki biridir
:
(@Name nvarchar(4000)) insert Clients(name) values(@Name)
Ve sorum şu: Dapper neden bir dizeyi nvarchar'a çeviriyor (4000)? Ben veritabanı üzerinde ... Yani, adı alan bir nvarchar (50) ...
herkes bu hatayı karşıya mı? Nasıl tamir edersin? Bunun gibi başka bir hata buldunuz mu?
(ama saf varsayım) sahipse de Zarif tablo yapısı hakkında hiçbir şey bilmediği için, ve .NET 'string', bellekten başka bir boyut sınırlaması olmadan potansiyel olarak UTF-16'dır (bu nedenle ANSI olmayan bir dizedir). Bu maksimum kullanılabilir uzunluk ile nvarchar türüne çevirir. Bunun bir hata olmadığını söyleyebilirim, ancak kendiniz doğrulama yapmanız ya da 'INSERT' üzerindeki veri bütünlüğü ihlali istisnalarını yakalamanız gerekiyor. –