How to implement DBString.length in my model?

Let's say I have the following Informix table structure:

tablename = clients
field = firstname CHAR(30)

And the model is something like this:

public class Clients
{
    [StringLength(30)]
    public string firstname { get; set; }
}

I know that I can declare firstname as a DbString type and set IsAnsi and Length:

con.Execute(@" insert Clients(firstname) values(?firstname?)", 
    new { firstname = new DbString { Value = "John", IsAnsi = true, Length = 30 }});

But when I go into the above model to dapper, this leads to an “Invalid text byte type conversion attempt” because dapper assumes that the firstname string is a text type and not a fixed string:

con.Execute(@" insert Clients(firstname) values(?firstname?)", Clients);

I could not find any examples showing how:

  • determine the length of the string as a custom attribute in the model and tell dapper to use the customer attribute and define the string as a DbString with a length
  • dapper StringLength ( , , , , dapper )

, .

+4

Source: https://habr.com/ru/post/1673534/


All Articles