{“LINQ to Entities不识别方法';Boolean IsLetter(Char)';方法,并且

本文关键字:方法 IsLetter Char 并且 Boolean 识别 to LINQ Entities | 更新日期: 2023-09-27 18:29:50

我想使用LINQ获取数据库中的所有项目,其中标题以特殊字符或数字开头,我已经尝试了下面的代码,但它不起作用。

感谢

result = (from asset in _db.Query<Asset>()
                          where !char.IsLetter(asset.Title[0])
                          select new AssociatedItem { Id = asset.AssetId, Title = asset.Title, Type = Constants.FeedbackTypes.ASSET }).ToList();

{“LINQ to Entities不识别方法';Boolean IsLetter(Char)';方法,并且

这是因为char。IsLetter不是dbFunction。

您可以在转换结果ToList() 后应用where

result = (from asset in _db.Query<Asset>()                         
                      select new AssociatedItem { Id = asset.AssetId, Title = asset.Title, Type = Constants.FeedbackTypes.ASSET }).ToList()
.Where(a => !char.IsLetter(a.Title[0])).ToList();

PS:尝试为数据库查询识别一些其他where子句以限制结果。

我会尝试System.Data.Linq.SqlClient命名空间中的SqlMethods类。

result = (from asset in _db.Query<Asset>()
                     where !SqlMethods.Like(asset.Title, "[a-Z]%")
                     select 
                            new AssociatedItem 
                            { 
                                Id = asset.AssetId, 
                                Title = asset.Title, 
                                Type = Constants.FeedbackTypes.ASSET 
                            }).ToList();