2012-08-13 29 views
-4
string last = url.Substring(url.LastIndexOf('/') + 1); 
var provisionedSiteRequestRep = provisioningRequestRepository.SelectFirst(new WhereSpecification<ProvisioningRequest>(result => result.SiteUrl.Contains(last.ToString()))); 

有些時候我得到了last.tosting()的空值,所以我得到這個代碼的異常如何解決這個問題?LINQ中不能使用'contains'

+6

什麼你的問題,其實?看起來你的問題的一部分是缺少.... – sloth 2012-08-13 16:19:46

+0

在一個不相關的說明,你爲什麼要調用一個字符串'.ToString()'? – 2012-08-13 16:22:07

回答

1

你在這一行

(result => result.SiteUrl.Contains(last.ToString()); 

面臨的問題,您可以請檢查SITEURL是否則它不會爲你工作的字符串類型。 因爲去年是字符串類型,包含的方法,通過字符串類型支持...

否則最後必須是enumebrable收集和SITEURL也可枚舉集合比只有比蘊含支持

+0

爲什麼'SiteUrl'必須是一個字符串? – sloth 2012-08-13 16:26:23

+0

@BigYellowCactus - 因爲最後是字符串的類型,而Contains是字符串類型支持的方法....否則最後需要是可引用的集合和siteurl也是可枚舉集合的,並且只有支持Contains的纔是 – 2012-08-13 16:30:47

+2

您的聲明仍然是錯誤的。 'SiteUrl'可以是'Collection ','List ','IEnumerable '或者任何其他類型,它本身或者由於擴展方法而提供'Contains'方法。 – sloth 2012-08-13 16:34:30