2016-07-22 53 views
0

我必須從實體框架重試可空的日期時間,並將其轉換成這種類型的蒙面串:ToString("dd-MM-yyyy")C#轉換可空日期時間的字符串,掩碼爲選擇新

我重新嘗試所有的值與此代碼(現在我展示的唯一DataLead)

var dbResult = conc.Clientes.Where(x => x.StatoCliente == "1").ToList(); 
       var leads = from e in dbResult 
          select new 
          { 
           e.DataLead 
          } into selectedLead 
          select selectedLead; 
       return Json(leads, JsonRequestBehavior.AllowGet); 

在我的代碼另一部分我做轉換,此代碼:

DateTime date = (DateTime) DataLead; 
string dateElaborated = date.ToString("dd-MM-yyyy"); 

但是,我怎麼可以這樣操作我的LINQ選擇功能?

感謝所有

+1

是'e.DataLead'您可空日期?如果它爲空,你希望發生什麼? –

+0

是的,這是我可以空的日期。如果它是空的,我不能返回一個空字符串或null –

回答

0

可以使用的String.format(假設e.DateLead爲空DateTime類型):

var dbResult = conc.Clientes.Where(x => x.StatoCliente == "1").ToList(); 
var leads = from e in dbResult 
    select new 
    { 
     Datalead = string.Format("{0:dd-MM-yyyy}", e.DataLead) 
    }; 

或者C#中的新功能6

var leads = from e in dbResult 
    select new 
    { 
     Datalead = e.DataLead?.Value.ToString("dd-MM-yyyy") 
    }; 
0
var leads = from e in dbResult 
      select new { 
       selectedLead = e.DataLead != null ? e.DataLead.ToString("dd-MM-yyyy"): string.Empty 
      }; 
+0

你錯過了? – RIanGillis

+0

它會和上面的代碼一樣工作,請嘗試 –

+0

不,那不會編譯。如果沒有其他原因,因爲沒有'nulle'這樣的東西。 –

0

如何:

// Get alternative text if DataLead is null 
var leads = dbResult.Select(entry => entry.DataLead) 
        .Select(date => date.HasValue 
            ? date.Value.ToString("dd-MM-yyyy") 
            : "unknown"); 

// Get only entries where DataLead is not null. 
var leads = dbResult.Select(entry => entry.DataLead) 
        .Where(entry => entry.HasValue) 
        .Select(date => date.Value.ToString("dd-MM-yyyy")); 
+0

謝謝,但我使用選擇新,因爲我需要加載很多參數...爲簡單起見,我只寫了DataLead,但我有近20個日期加載 –

0
var leads = conc.Clientes 
    .Where(o => o.StatoCliente == "1" && o.DataLead.HasValue) 
    .Select(o => o.DataLead.Value.ToString("dd-MM-yyyy")) 
    .ToList(); 

簡單明瞭。此外,我強烈建議不要使用字符串文字,如"1",但引入枚舉或常量值。

+0

謝謝,但我使用選擇新因爲我需要加載很多的參數...爲簡單起見,我只寫了DataLead, ,但我有將近20個日期加載 –

+0

因此,檢查所有的日期,並得到它們的值。下一次嘗試更具體。 – Phronux

相關問題