Skip to content

Linq generates a different select #3526

@robertovaldesperez

Description

@robertovaldesperez

Hi I have this map:

    public sealed class AssetMap : EntityMap<Asset, long?>
    {
        public AssetMap()
        {
            Table(Asset.TABLE);
            // Cache.NonStrictReadWrite();

            Id(x => x.Id).Column("ID_inmueble").GeneratedBy.Native();

            Map(x => x.PortfolioId).Column("ID_cartera").UniqueKey("UK_ASSET").Not.Nullable();

            // Internal data
            Map(x => x.Reference).Column("referencia").UniqueKey("UK_ASSET").Length(200).Not.Nullable();
            Map(x => x.Repeated).Column("repetido").Default("0").Nullable();
            Map(x => x.Scope).Column("scope").Default("1").Nullable();
            Map(x => x.Perimeter).Column("perimetro")/*.CustomSqlType("int")*/.CustomType<Perimeter?>().Default("1").Nullable();
            Map(x => x.OutOfScope).Column("out_of_scope").ReadOnly();
            Map(x => x.DevelopmentId).Column("ID_promocion").Index("IX_ASSET_DEVELOPMENT_ID").Not.Nullable();
            Map(x => x.CadastralReference).Column("referencia_catastral").Index("IX_ASSET_CADASTRAL_REFERENCE").Nullable();
            Map(x => x.EstateCadastralReference).Column("EstateId").Index("IX_ASSET_EstateId").Nullable().ReadOnly();
            Map(x => x.AuraId).Column("id_aura").Nullable();
            Map(x => x.ClientId).Column("id_cliente").Length(100);
            Map(x => x.Borrower).Column("propietario").Length(100);
            Map(x => x.BorrowerId).Column("id_borrower").Length(100);
            Map(x => x.LoanId).Column("id_loan").Length(50).Nullable();
            Map(x => x.RegistryId).Column("finca_registral").Length(100).Nullable();
            Map(x => x.Registration).Column("registro").Length(100).Nullable();
            Map(x => x.RegistrationNumber).Column("numeroRegistro").Nullable();
            Map(x => x.Idufir).Column("idufir").Nullable();
            Map(x => x.Lien).Column("lien").Length(50);
            Map(x => x.CadastralRefSection).Column("rc_seccion").Length(1);
            Map(x => x.CadastralRefSheet).Column("rc_hoja").Length(7);
            Map(x => x.CadastralRefParcel).Column("rc_parcela").Length(9);
            Map(x => x.CadastralRefSubparcel).Column("rc_subparcela").Length(4);
            Map(x => x.CadastralRefCategory).Column("rc_categoria").Length(4);

            // Location data
            Map(x => x.OriginalAddress).Column("direccion_original").Length(2000);
            Map(x => x.FullAddress).Column("direccion_completa").Length(500)/*.Not.Nullable()*/;
            Map(x => x.AddressName).Column("direccion_nombre").Length(ValidationUtils.MAX_LENGTH_ADDRESS_NAME).Nullable();
            Map(x => x.AddressNumber).Column("direccion_numero").Length(ValidationUtils.MAX_LENGTH_ADDRESS_NUMBER).Nullable();
            Map(x => x.AddressFloor).Column("direccion_planta").Length(ValidationUtils.MAX_LENGTH_ADDRESS_FLOOR).Nullable();
            Map(x => x.Block).Column("direccion_bloque").CustomSqlType("nvarchar(max)").Nullable();
            Map(x => x.Stair).Column("direccion_escalera").CustomSqlType("nvarchar(max)").Nullable();
            Map(x => x.AddressDoor).Column("direccion_unidad").Length(ValidationUtils.MAX_LENGTH_ADDRESS_DOOR).Nullable();
            Map(x => x.ZipCode).Column("cp").Nullable();
            Map(x => x.Latitude).Column("latitud").Index("IX_LATITUDE_LONGITUDE").Nullable();
            Map(x => x.Longitude).Column("longitud").Index("IX_LATITUDE_LONGITUDE").Nullable();
            Map(x => x.Geolocation).Column("geolocation").CustomSqlType("GEOGRAPHY").CustomType<MsSqlGeographyType>().Index("IX_ASSET_GEO_LOCATION").Nullable().LazyLoad();
            //Map(x => x.Geolocation).Column("geolocation").CustomSqlType("GEOGRAPHY").CustomType<GuruPostGisGeometryType>().Index("IX_PROPERTY_GEO_LOCATION").Nullable().LazyLoad();
            Map(x => x.GeolocationType).Column("geolocation_type").CustomType<EnumStringType<GeolocationType>>().Length(20).Nullable();

            // Typology
            Map(x => x.AssetType).Column("ID_tipo")/*.CustomSqlType("int")*/.CustomType<AssetType>().Not.Nullable();
            Map(x => x.AssetSubtype).Column("ID_subtipo").CustomType<AssetSubtype?>().Nullable();
            // Map(x => x.MaintenanceStatus).Column("estado_conservacion").CustomType<MaintenanceStatus?>().Nullable();

            // Area
            Map(x => x.OriginalArea).Column("superficie_original").Nullable();
            Map(x => x.Area).Column("superficie").Nullable();
            Map(x => x.UsefulArea).Column("superficie_util").Nullable();
            Map(x => x.PlotArea).Column("superficie_parcela").Nullable();
            Map(x => x.TerraceArea).Column("superficie_terraza").Nullable();
            Map(x => x.AreaCcaa).Column("superficie_ccaa").Nullable();
            Map(x => x.AreaCcaaParking).Column("superficie_ccaa_parking").Nullable();
            Map(x => x.AreaCcaaStorageRoom).Column("superficie_ccaa_trastero").Nullable();
            Map(x => x.AreaHousing).Column("superficie_vivienda").Nullable();
            Map(x => x.AreaRegistry).Column("superficie_registro").Nullable();
            Map(x => x.AreaCcaaRegistry).Column("superficie_ccaa_registro").Nullable();
            Map(x => x.AppraisalArea).Column("sup_tasacion").Nullable();
            Map(x => x.AppraisalAreaCcaa).Column("sup_tasacion_ccaa").Nullable();
            Map(x => x.AreaData).Column("sup_data").Nullable();
            Map(x => x.AreaCcaaData).Column("sup_data_ccaa").Nullable();
            Map(x => x.WheightedArea).Column("superficie_comercial").Nullable();
            Map(x => x.GrossFloorArea).Column("superficie_planta_bruta").Nullable();
            Map(x => x.NetPlotArea).Column("superficie_neta_suelo").Nullable();

            Map(x => x.AreaSource).Column("superficie_fuente").CustomType<AreaSourceType?>().Nullable();

            Map(x => x.TotalFloors).Column("total_plantas").Nullable();
            Map(x => x.TotalFloorsMainUse).Column("total_plantas_uso_prin").Nullable();
            Map(x => x.TotalAnexes).Column("total_anejos").Nullable();

            // Features
            Map(x => x.YearOfConstruction).Column("anyo_construccion").Nullable();
            Map(x => x.Rooms).Column("habitaciones").Nullable();
            Map(x => x.RoomsKnown).Column("habitaciones_known").Nullable();

            Map(x => x.RoomsSource).Column("habitaciones_fuente").CustomType<RoomsSourceType?>().Nullable();

            Map(x => x.Bathrooms).Column("banios").Nullable();
            Map(x => x.Parkings).Column("parking").Nullable();
            Map(x => x.Storerooms).Column("trastero").Nullable();
            Map(x => x.SwimmingPool).Column("piscina").Nullable();
            Map(x => x.Terrace).Column("terraza").Nullable();
            Map(x => x.Orientation).Column("interior_exterior").CustomType<WindowOrientation?>().Nullable();
            Map(x => x.Duplex).Column("duplex").Nullable();
            Map(x => x.SeaViews).Column("vistas_mar").Nullable();
            Map(x => x.EnergyCertificate).Column("cert_energetico").CustomType<EnergyCertificate?>().Nullable();
            Map(x => x.SmokeVent).Column("salida_humos").Nullable();
            Map(x => x.Showcase).Column("escaparate").Nullable();
            Map(x => x.CrossingDocks).Column("crossing_docks").Nullable();
            Map(x => x.PositiveCold).Column("positive_cold").Nullable();
            Map(x => x.NegativeCold).Column("negative_cold").Nullable();
            Map(x => x.TypeOfCrop).Column("tipo_cultivo").Nullable();
            Map(x => x.MaxHeight).Column("max_height").Nullable();

            // Tenancy & Use
            Map(x => x.Activity).Column("tipo_actividad").Length(25).Nullable();
            Map(x => x.Vpo).Column("vpo").Nullable();
            Map(x => x.InUse).Column("en_uso").Nullable();
            Map(x => x.Rented).Column("rented").Nullable();
            Map(x => x.RentedKnown).Column("rented_known").Nullable();
            Map(x => x.RentedSource).Column("rented_source").CustomType<SourceType?>().Nullable();
            Map(x => x.LeaseContract).Column("contrato_de_alquiler").Nullable();
            Map(x => x.IllegalSquatters).Column("okupas_ilegales").Nullable();
            Map(x => x.IllegalSquattersKnown).Column("okupas_ilegales_known").Nullable();
            Map(x => x.IllegalSquattersPastVal).Column("okupas_ilegales_past_val").Nullable();
            Map(x => x.IllegalSquattersSource).Column("okupas_source").CustomType<SourceType?>().Nullable();
            Map(x => x.MarketShare).Column("market_share").Default("100").Nullable();
            Map(x => x.MarketShareType).Column("market_share_type").CustomType<MarketShareType?>().Nullable();
            Map(x => x.PctPropertyOnBuilding).Column("pct_propiedad_edificio").Nullable();

            // Subsidized assets
            // Visible if subsidized yes
            Map(x => x.ProtectionType).Column("tipo_proteccion").Length(25).Nullable();
            Map(x => x.VpoModule).Column("vpo_modulo").Nullable();
            Map(x => x.PctEuroSqmAnexes).Column("pct_eurom2_anejos").Nullable();
            Map(x => x.LegalMaximumValueEurSqm).Column("vpo_val_max_legal_m2");
            Map(x => x.LegalMaximumValue).Column("vpo_val_max_legal").ReadOnly();
            Map(x => x.DateOfQualification).Column("fecha_calificacion");
            Map(x => x.DateOfDisqualification).Column("fecha_descalificacion");

            // Valuation management
            Map(x => x.MarketResearchId).Column("ID_desktop").Nullable();
            Map(x => x.CoefficientTotal).Column("val_ratio_total").ReadOnly();
            Map(x => x.CoefficientTotalRent).Column("val_ratio_total_renta").ReadOnly();
            Map(x => x.CoefficientFix).Column("val_ratio_fix").Default("1").Nullable();
            Map(x => x.CoefficientFixRent).Column("val_ratio_fix_renta").Default("1").Nullable();
            Map(x => x.CoefficientSize).Column("val_ratio_size").Default("1").Nullable();
            Map(x => x.CoefficientFloor).Column("val_ratio_planta").Default("1").Nullable();
            Map(x => x.CoefficientOrientation).Column("val_ratio_interior_exterior").Default("1").Nullable();
            Map(x => x.CoefficientDuplex).Column("val_ratio_duplex").Default("1").Nullable();
            Map(x => x.CoefficientSeaViews).Column("val_ratio_vistas_mar").Default("1").Nullable();
            Map(x => x.CoefficientSmokeVent).Column("val_ratio_salida_humos").Default("1").Nullable();
            Map(x => x.CoefficientShowcase).Column("val_ratio_escaparate").Default("1").Nullable();
            Map(x => x.CoefficientCrossingDocks).Column("val_ratio_crossing_docks").Default("1").Nullable();
            Map(x => x.CoefficientPositiveCold).Column("val_ratio_positive_cold").Default("1").Nullable();
            Map(x => x.CoefficientNegativeCold).Column("val_ratio_negative_cold").Default("1").Nullable();
            Map(x => x.CoefficientTypeOfCrop).Column("val_ratio_tipo_cultivo").Default("1").Nullable();
            Map(x => x.CoefficientTerrace).Column("val_ratio_terraza").Default("1").Nullable();

            // Market Value (Comparables)
            Map(x => x.EuroSqmCcaa).Column("eur_sqm_ccaa").ReadOnly();
            Map(x => x.EuroSqm).Column("eur_sqm").ReadOnly();
            Map(x => x.Price).Column("price").ReadOnly();

            // Leasing Costs
            Map(x => x.MonthlyCommExpSqm).Column("gastos_mensuales_comunidad_m2").Default("0").Nullable();
            Map(x => x.MonthlyIbiExpSqm).Column("gastos_mensuales_ibi_m2").Default("0").Nullable();
            Map(x => x.MonthlyInsExpSqm).Column("gastos_mensuales_seguros_m2").Default("0").Nullable();
            Map(x => x.MonthlyFeeExpSqm).Column("gastos_mensuales_fee").Default("0").Nullable();
            Map(x => x.MonthlyMainExpSqm).Column("gastos_mensuales_main").Default("0").Nullable();
            Map(x => x.MonthlyOtherExpSqm).Column("gastos_mensuales_otro").Default("0").Nullable();
            Map(x => x.MonthlyManualExp).Column("gastos_manual_mensuales").Nullable();

            // Capital values (100% occup & 100% lettable area)
            Map(x => x.EstimatedRentalValue).Column("erv").ReadOnly();
            Map(x => x.GrossRent).Column("gross_rent").ReadOnly();
            Map(x => x.MonthlyCommExpSqmIncl).Column("gastos_mensuales_comunidad_m2_incl").Default("1").Nullable();
            Map(x => x.MonthlyIbiExpSqmIncl).Column("gastos_mensuales_ibi_m2_incl").Default("1").Nullable();
            Map(x => x.MonthlyInsExpSqmIncl).Column("gastos_mensuales_seguros_m2_incl").Default("1").Nullable();
            Map(x => x.MonthlyFeeExpSqmIncl).Column("gastos_mensuales_fee_incl").Default("1").Nullable();
            Map(x => x.MonthlyMainExpSqmIncl).Column("gastos_mensuales_main_incl").Default("1").Nullable();
            Map(x => x.MonthlyOtherExpSqmIncl).Column("gastos_mensuales_otro_incl").Default("1").Nullable();
            Map(x => x.NetEstimatedRentalValue).Column("net_erv").ReadOnly();
            Map(x => x.NetRent).Column("net_rent").ReadOnly();
            Map(x => x.CapValueEuroSqm).Column("cap_value_eur_sqm").ReadOnly();
            Map(x => x.CapValue).Column("cap_value").ReadOnly();

            // Visible if lease contract yes
            Map(x => x.Tenant).Column("inquilino").Nullable();
            Map(x => x.TenantProfile).Column("tipo_inquilino").Nullable();
            Map(x => x.ContractMonthlyRent).Column("renta_mensual_contrato").Nullable();
            Map(x => x.RentIndexation).Column("indexacion_alquiler").Nullable();
            Map(x => x.ContractMonthlyCommExpSqmIncl).Column("gastos_mensuales_comunidad_m2_contrato_incl").Nullable();
            Map(x => x.ContractMonthlyIbiExpSqmIncl).Column("gastos_mensuales_ibi_m2_contrato_incl").Nullable();
            Map(x => x.ContractMonthlyInsExpSqmIncl).Column("gastos_mensuales_seguros_m2_contrato_incl").Nullable();
            Map(x => x.ContractMonthlyFeeExpSqmIncl).Column("gastos_mensuales_fee_contrato_incl").Nullable();
            Map(x => x.ContractMonthlyMainExpSqmIncl).Column("gastos_mensuales_main_contrato_incl").Nullable();
            Map(x => x.ContractMonthlyOtherExpSqmIncl).Column("gastos_mensuales_otro_contrato_incl").Nullable();
            Map(x => x.ContractStartDate).Column("fecha_inicio_contrato").Nullable();
            Map(x => x.ContractFinalDate).Column("fecha_fin_contrato").Nullable();
            Map(x => x.PurchaseOption).Column("opcion_compra").Nullable();
            Map(x => x.ContractComments).Column("comentarios_contrato").CustomSqlType("nvarchar(max)").Nullable();
            Map(x => x.ContractNetRent).Column("val_renta_neta_contracto").Nullable();
            Map(x => x.ContractGrossRent).Column("val_renta_bruta_contracto").Nullable();
            Map(x => x.Leakage).Column("leakage").ReadOnly();
            Map(x => x.UnderOverRented).Column("sobre_infra_alquilado").CustomType<UnderOverRented?>().Nullable();

            // Capital Value(Lease contract)
            Map(x => x.ContractCapNetRent).Column("contract_cap_net_rent").ReadOnly();
            Map(x => x.ContractCapAiy).Column("val_aiy_contracto").Nullable();
            Map(x => x.ContractCapValueEuroSqm).Column("contract_cap_value_eur_sqm").ReadOnly();
            Map(x => x.ContractCapValue).Column("contract_cap_value").ReadOnly();

            Map(x => x.FinalValueType).Column("final_value_type").CustomType<FinalValueType?>().Nullable();
            Map(x => x.AssFinalPriceSales).Column("final_value").ReadOnly();
            Map(x => x.AssFinalSqmSales).Column("final_eur_sqm").ReadOnly();
            Map(x => x.AssFinalPriceSalesManual).Column("final_value_manual").Nullable();
            Map(x => x.QuickSaleValue).Column("valor_venta_rapida").Nullable();
            Map(x => x.JudicialValue).Column("valor_judicial").Nullable();

            // Appr. Value
            Map(x => x.AppraisalValue).Column("valor_tasacion");
            Map(x => x.AppraisalDate).Column("fecha_tasacion");

            // Others
            // Map(x => x.InDate).Column("IN_DATE").Nullable();
            Map(x => x.Capex).Column("capex").Nullable();
            Map(x => x.UrbanPlanningCapex).Column("plan_urbana_capex").Nullable();
            Map(x => x.BuildingCapex).Column("edificio_capex").Nullable();
            Map(x => x.CadastralCapex).Column("catastro_capex").Nullable();
            Map(x => x.AsbestosCapex).Column("amianto_capex").Nullable();
            Map(x => x.OthEnvrCapex).Column("otro_ambiental_capex").Nullable();
            Map(x => x.PurchaseCostsOku).Column("gastos_compra_okupas").Nullable();

            Map(x => x.Line).Column("DATA_TAPE_LINE").CustomType<JsonColumnType<string[]>>().Not.Nullable();
            // Map(x => x.LineGzip).Column("DATA_TAPE_LINE_GZIP").CustomType<GuruJsonColumnType<string[]>>().Not.Nullable();

            Map(x => x.IdCod00).Column("id_cod_00").Nullable();
            Map(x => x.IdCod01).Column("id_cod_01").Nullable();
            Map(x => x.IdCod02).Column("id_cod_02").Nullable();
            Map(x => x.IdCod03).Column("id_cod_03").Nullable();
            Map(x => x.IdCod04).Column("id_cod_04").Nullable();
            Map(x => x.IdCod05).Column("id_cod_05").Nullable();
            Map(x => x.IdCod06).Column("id_cod_06").Nullable();
            Map(x => x.IdCod07).Column("id_cod_07").Nullable();
            Map(x => x.IdCod08).Column("id_cod_08").Nullable();

            Map(x => x.UpdatedFrom).Column("UPDATED_FROM").CustomType<AssetUpdatedFrom?>().Not.Nullable();
            Map(x => x.DataTapeVersion).Column("DATA_TAPE_VERSION").Default("0").Not.Nullable();

            // Market Research
            Map(x => x.AssCompSqmRent).Column("val_preciom2_alq").Nullable();
            Map(x => x.AssCompSqmSales).Column("val_preciom2_venta").Nullable();
            Map(x => x.AssArea).Column("val_superficie").Nullable();
            Map(x => x.AiyNet).Column("val_aiy").Nullable();
            Map(x => x.Rent).Column("rent").ReadOnly();

            // Flags
            Map(x => x.FlgFullAddress).Column("flg_direccion_completa").Nullable();
            Map(x => x.FlgIdCod08).Column("flg_id_cod_08").Nullable();
            Map(x => x.FlgIdCod03).Column("flg_id_cod_03").Nullable();
            Map(x => x.FlgIdCod02).Column("flg_id_cod_02").Nullable();
            Map(x => x.FlgIdCod00).Column("flg_id_cod_00").Nullable();
            Map(x => x.FlgLatitude).Column("flg_latitud").Nullable();
            Map(x => x.FlgLongitude).Column("flg_longitud").Nullable();
            Map(x => x.FlgCadastralReference).Column("flg_referencia_catastral").Nullable();
            Map(x => x.FlagLocation).Column("flg_location").CustomType<FlagLocation?>().Nullable();
            Map(x => x.AccurateGeoScore).Column("accurate_geo_score").Nullable();
            Map(x => x.TypeOfAvm).Column("tipo_avm").CustomType<TypeOfAvm?>().Nullable();
            Map(x => x.FlgZipCode5).Column("flg_cp5").Nullable();
            Map(x => x.FlgZipCode2).Column("flg_cp2").Nullable();
            Map(x => x.FromAvm).Column("flg_avm").Nullable();

            Map(x => x.AvmPriceSales).Column("precio_avm_venta").Nullable();
            Map(x => x.AvmEuroSqmRent).Column("euroSqm_avm_alq").Nullable();
            Map(x => x.AvmRadioSales).Column("radio_avm_venta").Nullable();
            Map(x => x.AvmRadioRent).Column("radio_avm_alq").Nullable();
            Map(x => x.AvmSubtypeSales).Column("subtipo_avm_venta").CustomType<AvmSubtype?>().Nullable();
            Map(x => x.AvmSubtypeRent).Column("subtipo_avm_alq").CustomType<AvmSubtype?>().Nullable();

            References(x => x.Aura).Column("id_aura").LazyLoad().ReadOnly();
            References(x => x.Development).Column("ID_promocion").ReadOnly();
            References(x => x.GeographicalLevel03).Column("id_cod_base").NotFound.Ignore().LazyLoad().ReadOnly();
            References(x => x.MarketResearch).Column("ID_desktop").LazyLoad().ReadOnly();
            // Only for monitoring
            References(x => x.PopulationLevel03).Column("id_cod_03").LazyLoad().ReadOnly();
            References(x => x.TypeOfPlace03).Column("id_cod_03").LazyLoad().ReadOnly();

            HasMany(x => x.ConstructiveElements).KeyColumn("ID_inmueble").NotFound.Ignore().Not.LazyLoad().Inverse().Cascade.AllDeleteOrphan().AsSet();
            HasMany(x => x.Avms).KeyColumn("ID_inmueble").NotFound.Ignore().ExtraLazyLoad().Inverse().Cascade.None().ReadOnly().AsSet();
        }
    }

but when I run this query with linq:

        public Page<AssetUnitTemplateResult> PaginatedUnitsTemplate(IQueryable<Asset> query, PageRequest pageRequest)
        {
            var total = query.Count();

            var result = query
                .Select(w => new AssetUnitTemplateResult
                {
                    AssetId = w.Id,
                    DevelopmentId = w.DevelopmentId,
                    Reference = w.Reference,
                    Development = w.Development.Reference,
                    AddressFloor = w.AddressFloor,
                    AddressDoor = w.AddressDoor,
                    FullAddress = w.FullAddress,
                    AssetType = w.AssetType,
                    AreaCcaaData = w.AreaCcaaData.IsNull(),
                    Area = w.Area.IsNull(),
                    Rooms = w.Rooms,
                    UpdatedFrom = w.UpdatedFrom,
                    Capex = w.Capex.IsNull() + w.AsbestosCapex.IsNull() + w.BuildingCapex.IsNull() + w.CadastralCapex.IsNull() + w.OthEnvrCapex.IsNull() + w.UrbanPlanningCapex.IsNull(),
                    PurchaseCostsOku = w.PurchaseCostsOku.IsNull(),
                    CadastralReference = w.CadastralReference ?? w.EstateCadastralReference,
                    Vpo = w.Vpo,
                    AssFinalSqmSales = w.AssFinalSqmSales,
                    AssFinalPriceSales = w.AssFinalPriceSales,
                    EstimatedRentalValue = w.EstimatedRentalValue.IsNull(),
                    AiyNet = w.AiyNet.IsNull() / 100,
                    ConcludedEuroSqm = w.ConcludedEuroSqm.IsNull(),
                    ConcludedValue = w.ConcludedValue.IsNull(),
                    AssCompSqmSales = w.EuroSqm,
                    AssCompPriceSales = w.Price,
                    Charges = w.Development.Charges.IsNull(),
                    MonthlyCommExpSqm = w.MonthlyCommExpSqm,
                    MonthlyIbiExpSqm = w.MonthlyIbiExpSqm,
                    MonthlyInsExpSqm = w.MonthlyInsExpSqm,
                    MonthlyFeeExpSqm = w.MonthlyFeeExpSqm,
                    MonthlyMainExpSqm = w.MonthlyMainExpSqm,
                    MonthlyOtherExpSqm = w.MonthlyOtherExpSqm,
                    MonthlyCommExpSqmIncl = w.MonthlyCommExpSqmIncl,
                    MonthlyIbiExpSqmIncl = w.MonthlyIbiExpSqmIncl,
                    MonthlyInsExpSqmIncl = w.MonthlyInsExpSqmIncl,
                    MonthlyFeeExpSqmIncl = w.MonthlyFeeExpSqmIncl,
                    MonthlyMainExpSqmIncl = w.MonthlyMainExpSqmIncl,
                    MonthlyOtherExpSqmIncl = w.MonthlyOtherExpSqmIncl,
                    CapValue = w.CapValue,
                    FinalValueType = w.FinalValueType,
                    IdCod00 = w.IdCod00
                })
                .OrderBy(w => w.DevelopmentId)
                .ThenBy(w => w.AssetId)
                .Skip(pageRequest.Offset)
                .Take(pageRequest.Size)
                .ToList<AssetUnitTemplateResult>();

            return new Page<AssetUnitTemplateResult>(result, result.Count, pageRequest.Page, result.Count, pageRequest.Sort, total, pageRequest.Size);
        }

The generated sql is this:

select
        asset0_.ID_inmueble as col_0_0_,
        asset0_.ID_promocion as col_1_0_,
        asset0_.referencia as col_2_0_,
        developmen1_.referencia as col_3_0_,
        asset0_.direccion_planta as col_4_0_,
        asset0_.direccion_unidad as col_5_0_,
        asset0_.direccion_completa as col_6_0_,
        asset0_.ID_tipo as col_7_0_,
        ISNULL(asset0_.sup_data_ccaa,
        0) as col_8_0_,
        ISNULL(asset0_.superficie,
        0) as col_9_0_,
        asset0_.habitaciones as col_10_0_,
        asset0_.UPDATED_FROM as col_11_0_,
        ISNULL(asset0_.capex,
        0)+ISNULL(asset0_.amianto_capex,
        0)+ISNULL(asset0_.edificio_capex,
        0)+ISNULL(asset0_.catastro_capex,
        0)+ISNULL(asset0_.otro_ambiental_capex,
        0)+ISNULL(asset0_.plan_urbana_capex,
        0) as col_12_0_,
        ISNULL(asset0_.gastos_compra_okupas,
        0) as col_13_0_,
        coalesce(asset0_.referencia_catastral,
        asset0_.EstateId) as col_14_0_,
        asset0_.vpo as col_15_0_,
        asset0_.final_eur_sqm as col_16_0_,
        asset0_.final_value as col_17_0_,
        ISNULL(asset0_.erv,
        0) as col_18_0_,
        ISNULL(asset0_.val_aiy,
        0) as col_19_0_,
        asset0_.ID_inmueble as col_20_0_,
        asset0_.eur_sqm as col_22_0_,
        asset0_.price as col_23_0_,
        ISNULL(developmen1_.charges,
        0) as col_24_0_,
        asset0_.gastos_mensuales_comunidad_m2 as col_25_0_,
        asset0_.gastos_mensuales_ibi_m2 as col_26_0_,
        asset0_.gastos_mensuales_seguros_m2 as col_27_0_,
        asset0_.gastos_mensuales_fee as col_28_0_,
        asset0_.gastos_mensuales_main as col_29_0_,
        asset0_.gastos_mensuales_otro as col_30_0_,
        asset0_.gastos_mensuales_comunidad_m2_incl as col_31_0_,
        asset0_.gastos_mensuales_ibi_m2_incl as col_32_0_,
        asset0_.gastos_mensuales_seguros_m2_incl as col_33_0_,
        asset0_.gastos_mensuales_fee_incl as col_34_0_,
        asset0_.gastos_mensuales_main_incl as col_35_0_,
        asset0_.gastos_mensuales_otro_incl as col_36_0_,
        asset0_.cap_value as col_37_0_,
        asset0_.final_value_type as col_38_0_,
        asset0_.id_cod_00 as col_39_0_,
        asset0_.ID_inmueble as id1_35_,
        asset0_.VERSION as version2_35_,
        asset0_.OLD_ID as old3_35_,
        asset0_.ID_cartera as id4_35_,
        asset0_.referencia as referencia5_35_,
        asset0_.repetido as repetido6_35_,
        asset0_.[scope] as scope7_35_,
        asset0_.perimetro as perimetro8_35_,
        asset0_.out_of_scope as out9_35_,
        asset0_.ID_promocion as id10_35_,
        asset0_.referencia_catastral as referencia11_35_,
        asset0_.EstateId as estateid12_35_,
        asset0_.id_aura as id13_35_,
        asset0_.id_cliente as id14_35_,
        asset0_.propietario as propietario15_35_,
        asset0_.id_borrower as id16_35_,
        asset0_.id_loan as id17_35_,
        asset0_.finca_registral as finca18_35_,
        asset0_.registro as registro19_35_,
        asset0_.numeroRegistro as numeroregistro20_35_,
        asset0_.idufir as idufir21_35_,
        asset0_.lien as lien22_35_,
        asset0_.rc_seccion as rc23_35_,
        asset0_.rc_hoja as rc24_35_,
        asset0_.rc_parcela as rc25_35_,
        asset0_.rc_subparcela as rc26_35_,
        asset0_.rc_categoria as rc27_35_,
        asset0_.direccion_original as direccion28_35_,
        asset0_.direccion_completa as direccion29_35_,
        asset0_.direccion_nombre as direccion30_35_,
        asset0_.direccion_numero as direccion31_35_,
        asset0_.direccion_planta as direccion32_35_,
        asset0_.direccion_bloque as direccion33_35_,
        asset0_.direccion_escalera as direccion34_35_,
        asset0_.direccion_unidad as direccion35_35_,
        asset0_.cp as cp36_35_,
        asset0_.latitud as latitud37_35_,
        asset0_.longitud as longitud38_35_,
        asset0_.geolocation_type as geolocation40_35_,
        asset0_.ID_tipo as id41_35_,
        asset0_.ID_subtipo as id42_35_,
        asset0_.superficie_original as superficie43_35_,
        asset0_.superficie as superficie44_35_,
        asset0_.superficie_util as superficie45_35_,
        asset0_.superficie_parcela as superficie46_35_,
        asset0_.superficie_terraza as superficie47_35_,
        asset0_.superficie_ccaa as superficie48_35_,
        asset0_.superficie_ccaa_parking as superficie49_35_,
        asset0_.superficie_ccaa_trastero as superficie50_35_,
        asset0_.superficie_vivienda as superficie51_35_,
        asset0_.superficie_registro as superficie52_35_,
        asset0_.superficie_ccaa_registro as superficie53_35_,
        asset0_.sup_tasacion as sup54_35_,
        asset0_.sup_tasacion_ccaa as sup55_35_,
        asset0_.sup_data as sup56_35_,
        asset0_.sup_data_ccaa as sup57_35_,
        asset0_.superficie_comercial as superficie58_35_,
        asset0_.superficie_planta_bruta as superficie59_35_,
        asset0_.superficie_neta_suelo as superficie60_35_,
        asset0_.superficie_fuente as superficie61_35_,
        asset0_.total_plantas as total62_35_,
        asset0_.total_plantas_uso_prin as total63_35_,
        asset0_.total_anejos as total64_35_,
        asset0_.anyo_construccion as anyo65_35_,
        asset0_.habitaciones as habitaciones66_35_,
        asset0_.habitaciones_known as habitaciones67_35_,
        asset0_.habitaciones_fuente as habitaciones68_35_,
        asset0_.banios as banios69_35_,
        asset0_.parking as parking70_35_,
        asset0_.trastero as trastero71_35_,
        asset0_.piscina as piscina72_35_,
        asset0_.terraza as terraza73_35_,
        asset0_.interior_exterior as interior74_35_,
        asset0_.duplex as duplex75_35_,
        asset0_.vistas_mar as vistas76_35_,
        asset0_.cert_energetico as cert77_35_,
        asset0_.salida_humos as salida78_35_,
        asset0_.escaparate as escaparate79_35_,
        asset0_.crossing_docks as crossing80_35_,
        asset0_.positive_cold as positive81_35_,
        asset0_.negative_cold as negative82_35_,
        asset0_.tipo_cultivo as tipo83_35_,
        asset0_.max_height as max84_35_,
        asset0_.tipo_actividad as tipo85_35_,
        asset0_.vpo as vpo86_35_,
        asset0_.en_uso as en87_35_,
        asset0_.rented as rented88_35_,
        asset0_.rented_known as rented89_35_,
        asset0_.rented_source as rented90_35_,
        asset0_.contrato_de_alquiler as contrato91_35_,
        asset0_.okupas_ilegales as okupas92_35_,
        asset0_.okupas_ilegales_known as okupas93_35_,
        asset0_.okupas_ilegales_past_val as okupas94_35_,
        asset0_.okupas_source as okupas95_35_,
        asset0_.market_share as market96_35_,
        asset0_.market_share_type as market97_35_,
        asset0_.pct_propiedad_edificio as pct98_35_,
        asset0_.tipo_proteccion as tipo99_35_,
        asset0_.vpo_modulo as vpo100_35_,
        asset0_.pct_eurom2_anejos as pct101_35_,
        asset0_.vpo_val_max_legal_m2 as vpo102_35_,
        asset0_.vpo_val_max_legal as vpo103_35_,
        asset0_.fecha_calificacion as fecha104_35_,
        asset0_.fecha_descalificacion as fecha105_35_,
        asset0_.ID_desktop as id106_35_,
        asset0_.val_ratio_total as val107_35_,
        asset0_.val_ratio_total_renta as val108_35_,
        asset0_.val_ratio_fix as val109_35_,
        asset0_.val_ratio_fix_renta as val110_35_,
        asset0_.val_ratio_size as val111_35_,
        asset0_.val_ratio_planta as val112_35_,
        asset0_.val_ratio_interior_exterior as val113_35_,
        asset0_.val_ratio_duplex as val114_35_,
        asset0_.val_ratio_vistas_mar as val115_35_,
        asset0_.val_ratio_salida_humos as val116_35_,
        asset0_.val_ratio_escaparate as val117_35_,
        asset0_.val_ratio_crossing_docks as val118_35_,
        asset0_.val_ratio_positive_cold as val119_35_,
        asset0_.val_ratio_negative_cold as val120_35_,
        asset0_.val_ratio_tipo_cultivo as val121_35_,
        asset0_.val_ratio_terraza as val122_35_,
        asset0_.eur_sqm_ccaa as eur123_35_,
        asset0_.eur_sqm as eur124_35_,
        asset0_.price as price125_35_,
        asset0_.gastos_mensuales_comunidad_m2 as gastos126_35_,
        asset0_.gastos_mensuales_ibi_m2 as gastos127_35_,
        asset0_.gastos_mensuales_seguros_m2 as gastos128_35_,
        asset0_.gastos_mensuales_fee as gastos129_35_,
        asset0_.gastos_mensuales_main as gastos130_35_,
        asset0_.gastos_mensuales_otro as gastos131_35_,
        asset0_.gastos_manual_mensuales as gastos132_35_,
        asset0_.erv as erv133_35_,
        asset0_.gross_rent as gross134_35_,
        asset0_.gastos_mensuales_comunidad_m2_incl as gastos135_35_,
        asset0_.gastos_mensuales_ibi_m2_incl as gastos136_35_,
        asset0_.gastos_mensuales_seguros_m2_incl as gastos137_35_,
        asset0_.gastos_mensuales_fee_incl as gastos138_35_,
        asset0_.gastos_mensuales_main_incl as gastos139_35_,
        asset0_.gastos_mensuales_otro_incl as gastos140_35_,
        asset0_.net_erv as net141_35_,
        asset0_.net_rent as net142_35_,
        asset0_.cap_value_eur_sqm as cap143_35_,
        asset0_.cap_value as cap144_35_,
        asset0_.inquilino as inquilino145_35_,
        asset0_.tipo_inquilino as tipo146_35_,
        asset0_.renta_mensual_contrato as renta147_35_,
        asset0_.indexacion_alquiler as indexacion148_35_,
        asset0_.gastos_mensuales_comunidad_m2_contrato_incl as gastos149_35_,
        asset0_.gastos_mensuales_ibi_m2_contrato_incl as gastos150_35_,
        asset0_.gastos_mensuales_seguros_m2_contrato_incl as gastos151_35_,
        asset0_.gastos_mensuales_fee_contrato_incl as gastos152_35_,
        asset0_.gastos_mensuales_main_contrato_incl as gastos153_35_,
        asset0_.gastos_mensuales_otro_contrato_incl as gastos154_35_,
        asset0_.fecha_inicio_contrato as fecha155_35_,
        asset0_.fecha_fin_contrato as fecha156_35_,
        asset0_.opcion_compra as opcion157_35_,
        asset0_.comentarios_contrato as comentarios158_35_,
        asset0_.val_renta_neta_contracto as val159_35_,
        asset0_.val_renta_bruta_contracto as val160_35_,
        asset0_.leakage as leakage161_35_,
        asset0_.sobre_infra_alquilado as sobre162_35_,
        asset0_.contract_cap_net_rent as contract163_35_,
        asset0_.val_aiy_contracto as val164_35_,
        asset0_.contract_cap_value_eur_sqm as contract165_35_,
        asset0_.contract_cap_value as contract166_35_,
        asset0_.final_value_type as final167_35_,
        asset0_.final_value as final168_35_,
        asset0_.final_eur_sqm as final169_35_,
        asset0_.final_value_manual as final170_35_,
        asset0_.valor_venta_rapida as valor171_35_,
        asset0_.valor_judicial as valor172_35_,
        asset0_.valor_tasacion as valor173_35_,
        asset0_.fecha_tasacion as fecha174_35_,
        asset0_.capex as capex175_35_,
        asset0_.plan_urbana_capex as plan176_35_,
        asset0_.edificio_capex as edificio177_35_,
        asset0_.catastro_capex as catastro178_35_,
        asset0_.amianto_capex as amianto179_35_,
        asset0_.otro_ambiental_capex as otro180_35_,
        asset0_.gastos_compra_okupas as gastos181_35_,
        asset0_.DATA_TAPE_LINE as data182_35_,
        asset0_.id_cod_00 as id183_35_,
        asset0_.id_cod_01 as id184_35_,
        asset0_.id_cod_02 as id185_35_,
        asset0_.id_cod_03 as id186_35_,
        asset0_.id_cod_04 as id187_35_,
        asset0_.id_cod_05 as id188_35_,
        asset0_.id_cod_06 as id189_35_,
        asset0_.id_cod_07 as id190_35_,
        asset0_.id_cod_08 as id191_35_,
        asset0_.UPDATED_FROM as updated192_35_,
        asset0_.DATA_TAPE_VERSION as data193_35_,
        asset0_.val_preciom2_alq as val194_35_,
        asset0_.val_preciom2_venta as val195_35_,
        asset0_.val_superficie as val196_35_,
        asset0_.val_aiy as val197_35_,
        asset0_.rent as rent198_35_,
        asset0_.flg_direccion_completa as flg199_35_,
        asset0_.flg_id_cod_08 as flg200_35_,
        asset0_.flg_id_cod_03 as flg201_35_,
        asset0_.flg_id_cod_02 as flg202_35_,
        asset0_.flg_id_cod_00 as flg203_35_,
        asset0_.flg_latitud as flg204_35_,
        asset0_.flg_longitud as flg205_35_,
        asset0_.flg_referencia_catastral as flg206_35_,
        asset0_.flg_location as flg207_35_,
        asset0_.accurate_geo_score as accurate208_35_,
        asset0_.tipo_avm as tipo209_35_,
        asset0_.flg_cp5 as flg210_35_,
        asset0_.flg_cp2 as flg211_35_,
        asset0_.flg_avm as flg212_35_,
        asset0_.precio_avm_venta as precio213_35_,
        asset0_.euroSqm_avm_alq as eurosqm214_35_,
        asset0_.radio_avm_venta as radio215_35_,
        asset0_.radio_avm_alq as radio216_35_,
        asset0_.subtipo_avm_venta as subtipo217_35_,
        asset0_.subtipo_avm_alq as subtipo218_35_,
        asset0_.id_cod_base as id219_35_
    from
        dbo.inmueble asset0_
    inner join
        dbo.promocion developmen1_
            on asset0_.ID_promocion=developmen1_.ID_promocion
    inner join
        dbo.cartera portfolio2_
            on developmen1_.ID_cartera=portfolio2_.ID_cartera
    where
        portfolio2_.ID_empresa=@p0
        and asset0_.ID_cartera=@p1
        and (
            asset0_.ID_tipo in (
                @p2
            )
        )
        and (
            developmen1_.ID_tipo_valoracion in (
                @p3
            )
        )
    order by
        asset0_.ID_promocion asc,
        asset0_.ID_inmueble asc OFFSET @p4 ROWS FETCH FIRST @p5 ROWS ONLY;
    @p0 = 1 [Type: Int64 (0:0:0)],
    @p1 = 2606 [Type: Int64 (0:0:0)],
    @p2 = 6 [Type: Int32 (0:0:0)],
    @p3 = 2 [Type: Int32 (0:0:0)],
    @p4 = 0 [Type: Int32 (0:0:0)],
    @p5 = 50 [Type: Int32 (0:0:0)]

The sql is returning all the columns of the Asset model along with the ones I put in the select.

@fredericDelaporte Can you help me?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions