我知道这是一种错误的做法,但我正在处理具有 NULLS 的遗留代码库,当它表示空字符串时,反之亦然。
我无法立即看到它是如何可能的,但是当从数据库映射回来时,是否有可能获取(或修改 dapper 以便它会)返回一个空字符串而不是空字符串。
最佳答案
Dapper 在看到 null 时不会调用任何 setter,因此选项可能包括:
""
在构造函数中null
在访问器中 所以:
public class SomeDto
{
public SomeDto()
{
Name = "";
}
public string Name {get;set;}
}
或者:
public class SomeDto
{
private string name;
public string Name { get {return name ?? "";} set {name = value;} }
}
但是,这只适用于读取值;我想不出一个让小巧玲珑转身的好方法
""
进入 null
将 dto 作为参数对象传入时;选项包括:""
至null
(也许写一个string NullIfBlank(this string s)
扩展方法)null
的类型上具有 shim 属性代替""
,并将您的数据库查询绑定(bind)到 @NameOrNull
而不是 @Name
关于dapper - 让 Dapper 返回一个空字符串而不是一个空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13944651/