Hi, My code looks like this and it doesnt work: This is with NHibernate. The error code : fetchQ.ParamName = "Region.Id"; The error text: NHibernate.QueryException: Type mismatch in NHibernate.Expression.EqExpression: Region.Id expected type System.Int32, actual type System.String RegionId in database is int. And the hbm file is mapped Int32 private void BindMunicipalities(int regionId) { try { string municipalityHql = "SELECT count(municipality.Id) from Municipality municipality WHERE municipality.Region.Id = :regionId"; IList queries = new List(); Query q = new Query(); q.ParamInt = regionId; q.ParamName = "regionId"; queries.Add(q); int municipalityCount = DataManagement.CoreRepository.RunCountStatement(municipalityHql, queries); if (municipalityCount > 0) { IList fetchQueries = new List(); Query fetchQ = new Query(); fetchQ.ParamName = "region.Id"; fetchQ.ParamInt = regionId; fetchQ.ParamEvaluationType = EvaluationType.Equals; fetchQ.ParamString = string.Empty; fetchQueries.Add(fetchQ); IList municipalities = DataManagement.CoreRepository.GetAll(fetchQueries, 0, 0, true, "Name"); ddlMunicipality.DataValueField = "Id"; ddlMunicipality.DataTextField = "Name"; ddlMunicipality.DataSource = municipalities; ddlMunicipality.DataBind(); } } catch (Exception ex) { logger.Error("Failed to load municipalities.", ex); this.lblError.Visible = true; } } protected void ddlRegions_SelectedIndexChanged(object sender, EventArgs e) { this.BindMunicipalities(int.Parse(this.ddlRegions.SelectedValue)); }
modified on Thursday, March 20, 2008 5:16 PM