【发布时间】:2013-08-30 08:51:26
【问题描述】:
我们在 ASP.NET MVC 4 应用程序中使用 BLToolkit 库。尝试执行以下 LINQ 语句时,我收到“由于对象的当前状态,操作无效”:
public List<Domain.Entities.Department_Facility> GetByDepartmentId(uint departmentId, uint fiscalYearId)
{
using (var db = new AabViftenDb())
{
BLToolkit.Common.Configuration.Linq.AllowMultipleQuery = true;
var result = (from df in db.department_facilities
where df.Department_ID == departmentId
&& df.departmentfacilityfiscalyearibfk1.Count() > 0
orderby df.ID descending
select new Department_Facility
{
ID = df.ID,
Description = df.Description,
EstablishedYear = df.EstablishedYear,
Facility = new Facility { ID = df.fkDepartmentFacilityfacility1.ID,
Name = df.fkDepartmentFacilityfacility1.Name,
Key= df.fkDepartmentFacilityfacility1.Key
},
LifeCycleYears = df.LifeCycleYears,
FacilityFiscalYear = (from ff in df.departmentfacilityfiscalyearibfk1
where ff.HousingAssociationFiscalYear_ID == fiscalYearId
select new Facility_FiscalYear
{
FiscalYear = new FiscalYears { ID = ff.departmentfacilityfiscalyearibfk2.ID,
FiscalYear = ff.departmentfacilityfiscalyearibfk2.FiscalYear },
ItemCount = ff.ItemCount
}).FirstOrDefault()
}).ToList();
return result;
}
}
型号:
public class Department_Facility
{
public uint ID { get; set; }
public Department Department { get;set; }
public Facility Facility { get; set; }
public ushort EstablishedYear { get; set; }
public decimal LifeCycleYears { get; set; }
public string Description { get; set; }
public Facility_FiscalYear FacilityFiscalYear { get; set; }
}
public class Facility_FiscalYear
{
public FiscalYears FiscalYear { get; set; }
public decimal ItemCount { get; set; }
}
df.LifeCycleYears 和 ff.ItemCount 具有 ushort 类型,因此在上面的 LINQ 语句中存在隐式 ushort 到十进制的转换。
【问题讨论】:
-
Jen,您能否从您的堆栈跟踪中再添加几行,以便我们找出内部异常是什么?
标签: asp.net-mvc linq bltoolkit