2014-02-18 25 views
0

我想從Linq Linq to Entity查詢中的StoreName字段中刪除前綴。在實體框架中正確使用StartWith和Contains

我有以下查詢它獲取的所有前綴列表表

查詢1

var _prefix = context.Prefixes.Select(pre => pre.Prefix1);

我想在使用這個結果QUERY2

QUERY2

var objRetailer = from stores in context.RetailerStoredtls 
        join ret in context.RetailerContactdtls 
        on stores.RetailerID equals ret.RetailerID 
        join retreg in context.RetailerRegDates 
        on stores.RetailerID equals retreg.RetailerRegDateId 
        where (stores.IsDeleted == null || stores.IsDeleted == false) 
            && (stores.CreatedDate.Value.Year == iYear || stores.ModifiedDate.Value.Year == iYear) 
        && retreg.IsApproved== true 
        orderby stores.StoreName 
        select new 
         { 
          stores.StoreID, 
          Store = stores.StoreName, 
          Area = stores.StoreCity, 
          Zip = stores.StoreZip, 
          SellingCard = (storessellingcard.Contains(stores.RetailerID.Value) ? true : false) 
          StoreWithoutPrefix = stores.StoreName.StartsWith(<one of prefix retrieved from Query1> ? stores.StoreName : <stores.StoreName without prefix> 
            }; 

不幸的是我們.StartWith()是隻需要字符串參數不會導致的查詢1,如果我去.Contains它不會檢查是否有啓動與否,它只是檢查字符串是否存在那裏。我該怎麼做才能完成這項任務?

謝謝。

+2

'_prefix.Any(p => stores.StoreName.StartsWith(p))'會有幫助嗎? –

+0

@Mathew它工作:)謝謝 – SMI

回答

0

您可以使用IndexOf,但可能您遇到區分大小寫問題。所以添加一個參數CompareOptions.IgnoreCase