I have a query method that works, it brings the information from the database, however I am trying to use substring to get a part of a certain value from a table, I am using Iqueryable, but informs that it can not convert string to int, could anyone instruct me to fix the problem, I'm using nhibernate. Follow the code below:
This is my select:
- select fo.year_exercise_ctx, fo.cod_font_group, fo.cod_fonte, fo.name_fonte,
- ne.idt_document, ne.year_document, ne.cod_ug, ne.cod_document, substr (ne.cod_ranking, 54,4)
- from lag4_es_2019.spa_fonte fo
- left join lag4_es_2019.spe_ne ne
- on fo.cod_group_fonte = substr (ne.cod_ranking, 54,1) and fo.cod_fonte = substr (ne.cod_ranking, 56,2)
- where fo.cod_font_font not in (0) and fo.cod_font not in (00)
- order by fo.cod_group_fonte, fo_cod_fonte, ne.cod_ug, ne.cod_document;
My code:
- public static IQueryable ListAll
- {
- ISessionFactory session = FluentHelper.GetSessionFactory (EnumDatabase.MsSqlSiplag);
- IQueryable
- .CreateCriteria ("ne")
- .List (). AsQueryable ()
- .Select ((i, x) => new {x, str = i.CodSubscription.Substring ("54,4", x)});
-
-
-
- var aa = criterion;
- return null;
- }
I tried to implement the condition without success.
- public static IQueryable ListAll()
- {
- ISessionFactory session = FluentHelper.GetSessionFactory(EnumDatabase.MsSqlLag);
- IQueryable criteria = session.OpenSession()
- .CreateCriteria("ne")
-
- .List().AsQueryable()
- .Where(g => g.Codranking.Contains(g.Codranking.Substring(54, 4), g.Codranking.Substring(54, 1), g.Codranking.Substring(56, 2)));
-
-
- var aa = criteria;
- return null;
- }
- using Domain.Lag.Domain;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
-
- namespace Domain.Lag.DataAccess.DTO
- {
- public class EmpenhoDTO
- {
-
- public virtual string CodClientCTX { get; set; }
- public virtual string IdtDocument { get; set; }
- public virtual string YearExerciseCTX { get; set; }
- public virtual string CodRanking { get; set; }
- public virtual string CodDocument { get; set; }
- public virtual string CodUg { get; set; }
- public virtual string YearDocument { get; set; }
-
-
- public override bool Equals(object obj)
- {
-
- if (!(obj is EmpenhoDTO)) return false;
-
- var objA = obj as EmpenhoDTO;
- return (this.YearExerciseCTX == objA.YearExerciseCTX && this.CodClientCTX == objA.CodClientCTX && this.IdtDocument == objA.IdtDocument &&
- this.CodDocument ==objA.CodDocument && this.CodUg==objA.CodUg && this.YearDocument ==objA.YearDocument );
-
-
- }
-
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
- }
- }