2013-08-30 35 views
1

我们在ASP.NET MVC 4应用程序中使用BLToolkit库。我得到一个“操作是无效的,由于对象的当前状态”试图执行下面的LINQ语句时:BLToolkit - 由于对象的当前状态,操作无效

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语句中隐含了十进制转换。

+0

仁,你能添加从您的堆栈跟踪几行,所以我们可以计算出内部异常是什么? –

回答

相关问题