如果值是空值,则使用Dapper返回日期

时间:2018-10-22 08:12:22

标签: c# dapper

如果我将此字段设置为NULL,如何使用Dapper返回日期?

这是我的方法,当我将输出返回给该方法时,仅缺少一些东西,看图片..我不知道我在做什么错..

我的方法:

    public DateTime GetArbeitStart(int userId)
    {
        using (IDbConnection connection = new System.Data.SqlClient.SqlConnection())
        {
            connection.ConnectionString = _ConnectionString;
            var output = connection.Query<DateTime>("select LPE_ArbeitStart from A_PERSONAL WHERE LPE_ID=" + userId).FirstOrDefault();

            return output == null ? new DateTime(2018, 1, 1);
        } 
    }

enter image description here

3 个答案:

答案 0 :(得分:2)

据我所知,您似乎正在尝试将ternary operatornull coalescing operator组合在一起。

我认为您只需要null合并运算符:

return output ?? new DateTime(2018, 1, 1); 

或者如果您想要更详细的三元运算符:

return output == null ? new DateTime(2018, 1, 1) : output;

答案 1 :(得分:1)

您缺少三元运算符中的else部分

return output === null ? new Date() : somethingElse;

答案 2 :(得分:0)

这是另一种选择:

public DateTime GetArbeitStart(int userId)
{
    using (IDbConnection connection = new System.Data.SqlClient.SqlConnection())
    {
        connection.ConnectionString = _ConnectionString;
        return connection.Query<DateTime>("select LPE_ArbeitStart from A_PERSONAL WHERE LPE_ID=" + userId)
            .DefaultIfEmpty(new DateTime(2018, 1, 1)).First();
    } 
}

我喜欢它确实具有声明性。