最近使用LINQ遇到的故障
2011-04-22 22:46
155 查看
1.成员“YouXieKu.Models.Product.Published”不支持转换为 SQL
public partial class Product{
.......
public bool Published
{
get
{
return (this.ReleaseDate <= DateTime.Now && (this.ExpireDate > DateTime.Now||this.ExpireDate==null)&&this.Storage.Count>0&&this.Approved==true);
}
}
}
可能原因:在执行LINQ查询时不该使用分部类中新增的属性值Published,直接通过原始值this.ReleaseDate <= DateTime.Now
&& (this.ExpireDate >
DateTime.Now||this.ExpireDate==null)&&this.Storage.Count>0&&this.Approved==true去判断
提示:由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值
可能原因:这是因为调试时会自动对Local/Watch等窗口里面(或鼠标停留所在)的变量求值,为了防止用户写的程序错误(比如死循环),系统有一个超时限制,
如果某个属性的get中做了很复杂的操作(而不是简单地返回一个私有变量的话),就有可能超过这个时间限制(如果strPage很大的话,你的正则运算就
很可能会超时)。
可以禁用自动求值的功能:
工具 -> 选项 -> 调试 -> 常规 -> 启用属性求值和其他隐式函数调用
去掉前面打勾,不过这样就不会对属性变量自动求值了。
3.LINQ语句 运行的时候提示"不支持带有本地集合的查询"
List<Department> _departments = dataContext.Department.GetAllChildDepartments(department);
var _ProductUnderDepartment =
(from a in dataContext.Product
let departmentIds = from b in _departments
select b.DepartmentID
where departmentIds.Contains(a.ProductID) == true && a.ReleaseDate <= DateTime.Now && (a.ExpireDate > DateTime.Now || a.ExpireDate == null) && a.Storage.Count > 0 && a.Approved == true
select a).ToList();
不使用let departmentIds = from b in _departments select b.DepartmentID 来动态从本地集合 _department 获取一组查询
改用直接先从_departments获取一组查询 List<int> _departments = dataContext.Department.GetAllChildDepartments(department).Select(p=>p.DepartmentID).ToList();
var ProductUnderDepartment =
(from a in dataContext.Product
where _departments.Contains(a.ProductID) == true && a.ReleaseDate <= DateTime.Now && (a.ExpireDate > DateTime.Now || a.ExpireDate == null) && a.Storage.Count > 0 && a.Approved == true
select a).ToList();
var _ProductUnderDepartment = (from b in ProductUnderDepartment
let s = from c in b.Storage
select c.UnitsInStock
where s != null && s.Sum() > 0
select b).ToList();
return _ProductUnderDepartment;
public partial class Product{
.......
public bool Published
{
get
{
return (this.ReleaseDate <= DateTime.Now && (this.ExpireDate > DateTime.Now||this.ExpireDate==null)&&this.Storage.Count>0&&this.Approved==true);
}
}
}
可能原因:在执行LINQ查询时不该使用分部类中新增的属性值Published,直接通过原始值this.ReleaseDate <= DateTime.Now
&& (this.ExpireDate >
DateTime.Now||this.ExpireDate==null)&&this.Storage.Count>0&&this.Approved==true去判断
提示:由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值
可能原因:这是因为调试时会自动对Local/Watch等窗口里面(或鼠标停留所在)的变量求值,为了防止用户写的程序错误(比如死循环),系统有一个超时限制,
如果某个属性的get中做了很复杂的操作(而不是简单地返回一个私有变量的话),就有可能超过这个时间限制(如果strPage很大的话,你的正则运算就
很可能会超时)。
可以禁用自动求值的功能:
工具 -> 选项 -> 调试 -> 常规 -> 启用属性求值和其他隐式函数调用
去掉前面打勾,不过这样就不会对属性变量自动求值了。
3.LINQ语句 运行的时候提示"不支持带有本地集合的查询"
List<Department> _departments = dataContext.Department.GetAllChildDepartments(department);
var _ProductUnderDepartment =
(from a in dataContext.Product
let departmentIds = from b in _departments
select b.DepartmentID
where departmentIds.Contains(a.ProductID) == true && a.ReleaseDate <= DateTime.Now && (a.ExpireDate > DateTime.Now || a.ExpireDate == null) && a.Storage.Count > 0 && a.Approved == true
select a).ToList();
不使用let departmentIds = from b in _departments select b.DepartmentID 来动态从本地集合 _department 获取一组查询
改用直接先从_departments获取一组查询 List<int> _departments = dataContext.Department.GetAllChildDepartments(department).Select(p=>p.DepartmentID).ToList();
var ProductUnderDepartment =
(from a in dataContext.Product
where _departments.Contains(a.ProductID) == true && a.ReleaseDate <= DateTime.Now && (a.ExpireDate > DateTime.Now || a.ExpireDate == null) && a.Storage.Count > 0 && a.Approved == true
select a).ToList();
var _ProductUnderDepartment = (from b in ProductUnderDepartment
let s = from c in b.Storage
select c.UnitsInStock
where s != null && s.Sum() > 0
select b).ToList();
return _ProductUnderDepartment;
相关文章推荐
- Java学习笔记(二)最近使用eclipse时遇到的一些故障
- 使用svn hooks 脚本post-commit时遇到的故障
- 最近使用 .NET Core 遇到的一些坑
- 最近使用mysql遇到的几个问题
- 最近使用GITHUB的遇到问题
- 浅谈使用Linq to sharepoint时可能遇到的2个问题
- 最近使用j2me所遇到的问题~
- 关于在Webservice里使用LinqToSQL遇到一对多关系的父子表中子表需要ToList输出泛型而产生循环引用错误的解决办法!(转)
- 最近使用mybatis遇到的问题总结
- 最近使用fullCalendar与后台java结合遇到的各种‘坑’
- 最近使用iScroll遇到的一些问题及最后的解决方法
- 使用LINQ遇到的问题,请高手解答下原理
- 最近使用mysql数据库的时候遇到了多种数字的类型int,bigint,smallint和tinyint。
- 最近使用dbci_ora和log4cpp时遇到的问题
- 微信小程序 setData 的坑 原创 2017年01月01日 17:57:56 标签:微信小程序 30607 最近在使用微信小程序的setData时,遇到了以下问题。如下: 官网文档在使用setD
- 使用Linq 更新数据库时遇到的一些问题及解决办法
- 好久不做开发了,最近使用vs2008遇到了不能添加多个项目的问题,在此标记一下
- 最近在SDK下使用WebBrowser遇到了个问题
- 最近遇到一个问题,FlexPaper去掉logo 打印等东西后无法使用API
- 最近在SDK下使用WebBrowser遇到了个问题