【发布时间】:2014-04-28 06:39:06
【问题描述】:
我目前正在将旧系统迁移到 .Net,但遇到了这个问题。 我想返回结果,但我仍然需要在函数之后对其进行细化,但是使用此代码,我别无选择,只能从数据库中调用结果并过滤内存中的结果,这样性能很差。
public IQueryable<User> GetUser(string[] accessCodes)
{
string condition = "";
if (accessCodes == null)
{
condition = " AccessCode IS NOT NULL "
}
else
{
for (int i = 0; i <= accessCodes.Length - 1; i++)
{
condition += " AccessCode LIKE '%" + accessCodes[i].ToString() + "%' ";
if (i + 1 <= code.Length - 1)
{
condition += " OR ";
}
}
}
return context.ExecuteQuery<User>("SELECT * FROM User WHERE " + condition, null).ToList();
}
我已经尝试过这种方法,但我被卡住了:
public IQueryable<User> GetUser(string[] accessCodes)
{
IQueryable<User> basequery = from u in context.User
select u;
if (accessCodes == null)
{
basequery = basequery.Where(n => n.AccessCode != null);
}
else
{
for (int i = 0; i <= accessCodes.Length - 1; i++)
{
// what am I supposed to do here?
}
}
return basequery;
}
我希望有不需要第三方库的解决方案。
【问题讨论】:
-
您能否简单地解释一下您要达到的目标?您想根据什么条件过滤用户?
标签: c# linq linq-to-entities