【发布时间】:2012-08-15 15:26:05
【问题描述】:
我有如下数据集函数,
public DataSet GetUpodBrandList(string criteria, string locationId)
{
using (SqlConnection conn = new SqlConnection(this.ConnectionString))
{
string query;
if (criteria == "")
query = "select distinct brandDesc " +
"from arabia_upod_item_master " +
"where locationId = '" + locationId +
"' order by brandDesc";
else
query = "select distinct brandDesc " +
"from arabia_upod_item_master " +
"where brandDesc like '%" + criteria + "%' " +
"and locationId = '" + locationId + "'
order by brandDesc";
conn.Open();
SqlCommand command = new SqlCommand(query, conn);
return this.ExecuteDatasetStoredProc(command);
}
}
我正在尝试将其转换为 linq,如下所示,
public static List<DataContext.arabia_upod_item_master> GetUpodBrandList(
string criteria,
string locationId)
{
List<DataContext.arabia_upod_item_master> m =
new List<DataContext.arabia_upod_item_master>();
using (var db = UpodDatabaseHelper.GetUpodDataContext())
{
db.ObjectTrackingEnabled = false;
if (criteria == "")
m = db.arabia_upod_item_masters.Where(
i => i.locationId == Convert.ToInt32(locationId))
.OrderBy(i => i.brandDesc)
.Distinct()
.ToList();
else
m = db.arabia_upod_item_masters.Where(
i => i.brandDesc.Contains(criteria) &&
i.locationId == Convert.ToInt32(locationId))
.OrderBy(i => i.brandDesc)
.Distinct()
.ToList();
return m;
}
}
但我不知道如何在上述函数中选择不同的brandDesc(如上一个函数)。我只是使用 Distinct()。这样对吗?还是有其他方法可以实现它?此外,如果在我的旧函数(即上面的第一个函数)中的查询中有“case”,那么我将如何在第二个函数中将其转换为 linq。转换为 linq 时还有其他需要担心的事情吗?
【问题讨论】:
-
对于您关于“案例”的问题,您需要提供一个带有“案例”的查询示例 - 这在单独的问题中会更好,而不是添加到这个问题中。