相关疑难解决方法(0)

在Select中过滤Null值

我有类型为T的对象的IQueryable列表,我想将其转换为K类型的对象

List<K> tranformedList = originalList.Select(x => transform(x)).ToList();
Run Code Online (Sandbox Code Playgroud)

如果转换函数不能转换对象,则返回null.如果我想过滤掉null元素,我可以调用它

List<K> tranformedList = originalList.Select(x => transform(x))
                                     .Where(y => y != default(K))
                                     .ToList();
Run Code Online (Sandbox Code Playgroud)

或者在LINQ中调用Select时是否还有其他过滤掉null元素的方法?

linq

56
推荐指数
2
解决办法
7万
查看次数

LINQ To SQL查询中的String.IsNullOrEmpty?

我的DBML公开了一个具有可空nvarchar字段的记录集.这个可空的nvarchar字段在我的C#代码中表示为一个字符串.

有时这个字段为空,有时它是一个空字符串,有时它实际上有一个值.

是否String.IsNullOrEmpty()在工作的LINQ到SQL?例如,以下工作:

var results = from result in context.Records
              where String.IsNullOrEmpty(result.Info) == false
              select result;
Run Code Online (Sandbox Code Playgroud)

c# linq-to-sql

24
推荐指数
3
解决办法
4万
查看次数

LINQ to Entities和null字符串

我使用EF 4.0作为其数据库后端在ASP.NET 4.0 Web应用程序上发生了一件非常奇怪的事情.从本质上讲,我有一个存储用户的密码重置请求(包含类型的复位键的表中byte[],类型的到期DateTime,以及一个外键,一个User包含string Emailstring Name).有些用户没有设置电子邮件地址,所以对于a PasswordRequest request,request.Emailnull.

这是问题所在.这非常好用:

string u = Request["u"];
string e = Request["e"];

var requests = from r in context.PasswordRequests
               where r.User.Name == u && r.User.Email == null && r.Expiry >= DateTime.Now
               select r;
Run Code Online (Sandbox Code Playgroud)

我得到预期的结果数量(非零,因为有null电子邮件条目).

但是,当这个总是返回一个空集enull:

string u = Request["u"];
string e = Request["e"];

var requests = from r in context.PasswordRequests
               where r.User.Name == u …
Run Code Online (Sandbox Code Playgroud)

c# sql-server asp.net linq-to-entities entity-framework

15
推荐指数
1
解决办法
1万
查看次数