嘿所有我试图将 DBNull 分配给int类值,如下所示:
namespace ETTData.Models
{
public class CHeld
{
public class AdNo {
public int RequestID { get; set; } = DBNull.Value;
public string TLead { get; set; } = DBNull.Value;
public DateTime RequestDate { get; set; } = DBNull.Value;
}
}
}
但是,我得到的错误是:
错误CS0029无法将类型'System.DBNull'隐式转换为'int'ETTData
错误CS0029无法将类型'System.DBNull'隐式转换为'string'ETTData
错误CS0037无法将null转换为'DateTime',因为它是不可为空的值类型
在执行 DateTime 和字符串 varibles时,这似乎也是个问题?
为了让它发挥作用我会缺少什么?
答案 0 :(得分:1)
您好,为什么要尝试将db null值放入模型类?
如果您不希望属性接收空值,则可以使用?
使您的类型可以为空。
public int? RequestID { get; set; }
public string TLead { get; set; }
public DateTime? RequestDate { get; set; }
希望这有帮助。
答案 1 :(得分:1)
您只能将DBNull
用于接受它作为有效值的类型 - 内置类型不会 - 您也不能自己创建任何类型 - 无法从DBNull
派生类/结构 - 它是密封的,所以不能继承。
您需要将null
用于可以在DB中处于可为空的属性(以及不能为null的模型结构类型,例如int
为nullables - int?
)。
保存到数据库时,请检查这些是否为null
,如果是,请将DBNull
传入您的数据库。