相关疑难解决方法(0)

LINQ - 从嵌套列表中获取值的总数

我有一个Class:

public class Company
{
    public int id { get; set; }
    public string title { get; set; }
    public string address { get; set; }
    public string city { get; set; }
    public string zip { get; set; }
    public List<string> phones { get; set; }
    public List<string> categories { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有一个Generic List包含Class:

public List<Company> Companies = new List<Company>();

我想做两件事:

  1. 获得一个明确的类别列表
  2. 获得每个类别的公司总数

我想我成功了第一件事:

Companies.SelectMany(c => c.categories).Distinct() 如果您认为有任何问题,请告诉我.

我尝试了第二步: Companies.SelectMany(c => …

c# linq

8
推荐指数
1
解决办法
8079
查看次数

Linq带有可选的Where子句和Sql Server CE

我有一个带有可选用户名字段的搜索表单.如果未提供用户名,则应返回所有匹配项.

我正在使用Linq和Sql Server CE 4.0.

linq代码如下所示 - >

from p in context.Accounts
where (name==string.Empty || p.UserName.Contains(name))
Run Code Online (Sandbox Code Playgroud)

使用Sql Server CE会引发以下错误

"此位置不允许使用参数.确保'@'符号位于有效位置,或者此SQL语句中的参数完全有效."

我可以采取其他方法在Linq中使用可选的Where子句吗?

仅供参考

from p in context.Accounts
where (string.IsNullOrEmpty(name) || p.UserName.Contains(name))
Run Code Online (Sandbox Code Playgroud)

给了我错误

"函数的指定参数值无效.[参数#= 1,函数名称(如果已知)= isnull]"}

这是因为Sql Server CE不支持IsNull.如果Name参数为Null,我只需执行以下操作.

if (name == null)
    name = string.Empty;
Run Code Online (Sandbox Code Playgroud)

linq sql-server-ce linq-to-sql

5
推荐指数
1
解决办法
2496
查看次数

标签 统计

linq ×2

c# ×1

linq-to-sql ×1

sql-server-ce ×1