Используйте Dapper, чтобы вернуть дату, если значение равно нулю - PullRequest
0 голосов
/ 22 октября 2018

как я могу использовать Dapper для возврата даты, если у меня есть это поле в NULL?

Это мой метод, только что-то не хватает, когда я возвращаю вывод в метод, см. Рисунок .. Iне знаю что я делаю не так ..

Мой метод:

    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 голосов
/ 22 октября 2018

вам не хватает else часть в троичном операторе

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

0 голосов
/ 22 октября 2018

Вот еще одна альтернатива:

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();
    } 
}

Мне нравится, что это действительно декларативно.

0 голосов
/ 22 октября 2018

Насколько я могу судить, вы, похоже, пытаетесь объединить троичный оператор с нулевым оператором слияния .

Я думаю, вы просто хотитеНулевой оператор объединения:

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

Или, если вы хотите более подробный троичный оператор:

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