3
我針對數據庫運行此查詢:在linq-to-sql查詢中將字符串轉換爲int:如何處理無法轉換的值?
var result = (from leads in dc.T_DM_FactDemandeWebLeads
join demands in dc.T_DM_DimDemandeWebs on leads.DemandeWeb_FK equals demands.DemandeWeb_PK
join temps in dc.T_DM_Temps on demands.DateDemande_FK equals temps.Temps_PK
where leads.longitudeClient != null && (Convert.ToInt32(leads.GeolocDistanceRouteDistrib) > 1000*30) && (temps.Date > new DateTime(2000, 1, 1).Date)
select new Lead
{
lng = leads.longitudeClient,
lat = leads.latitudeClient,
distance = leads.GeolocDistanceRouteDistrib
}).Take(1000000);
問題:此行是越野車:
(Convert.ToInt32(leads.GeolocDistanceRouteDistrib) > 1000*30)
爲leads.GeolocDistanceRouteDistrib是VARCHAR這需要 「未知」,在某些情況下, ,導致format exception:
Conversion failed when converting the varchar value 'Unknown' to data type int.
這個問題解決here,但該方法無法轉換爲SQL。
問題:是否有任何方法來重寫查詢,以便在執行查詢期間完成轉換?
似乎是一個好主意,但我仍然得到錯誤:不知何故轉換無論如何調用。 –