2013-08-28 106 views
0

我具有结合在基于搜索标准网格视图中的搜索结果。在我的数据库主商店ID值是10,12。当我从下拉列表中,即10选择特定的初级存储ID,搜索结果对应于该主存储ID需要在网格中显示view.How这样做呢?如何在LINQ中拆分字符串?

public static List<SearchKeyWord> GetAllKeywords(string key, 
     string primaryStoreId, string keywordStatus, int keywordId, 
     string categoryName, string subCategoryName) 
{ 
    keys = db.SearchKeyWords.Where(c => c.KeyWord.Contains(key) && 
    (c.PrimaryStoreID == primaryStoreId || 
    c.PrimaryStoreID.Split(',').ToList().Contains(primaryStoreId)) && 
    (string.IsNullOrEmpty(categoryName) || c.StoreCategoryMapping == categoryName) && 
    (string.IsNullOrEmpty(subCategoryName) || c.StoreSubCategoryMapping == 
    subCategoryName)).ToList(); 
} 

已编辑!

+0

我想他的意思,他实际上只使用一个整数主键 - 只是无法解释自己清楚......的OP可能想尝试和澄清的问题有点...事情我注意到直线距离不过是有对ToList()方法的大量不必要的调用,并且他实际上并没有返回键变量。我怀疑这个代码编译,因为它是... –

+0

@MartinMilan,主存储ID实际上是一个字符串。我已经用','映射了多个主商店ID的ID。该主存储ID将逐个加载到下拉列表中。当我从下拉列表中选择一个特定的主ID并搜索该商店ID时,我必须在网格视图中绑定与商店ID相对应的结果。例如,我已将25,50映射到数据库中的特定商店标识列。当我从下拉列表中只选择25,然后单击搜索按钮时,则需要在网格视图中显示与数据库中可用的匹配商店标识对应的结果。 – RGS

+0

实际问题是什么?什么或不工作?现在我们所能说的是,主要的Id是一个值得怀疑的设计。 –

回答

1

假设 - 在哪个属性PrimaryStoreID所有元素搜索db.SearchKeyWords(用英文逗号分隔)包含的关键。

public static List<SearchKeyWord> GetAllKeywords(string key, 
     string primaryStoreId, string keywordStatus, int keywordId, 
     string categoryName, string subCategoryName) 
{ 
    return db.SearchKeyWords 
     .Where(c => c.PrimaryStoreID.Split(",".ToCharArray()).Contains(key)); 
} 

根本不清楚你想用其他参数做什么。