oracle - Wrong column type - Found varchar2, Expected NVARCHAR2(255) -
i have mapping configuration composite-key using fluent nhibernate , need help, because not working.
i have 1 class called agencia have composite key 2 int16 collumns mapped number on oracle 11g database.
[serializable] public class agenciapk { [displayname("código")] public virtual system.int16 cdagencia { get; set; } public virtual system.int16 cdorgaoarrecad { get; set; } public override int gethashcode() { int hashcode = 0; hashcode = hashcode ^ cdagencia.gethashcode() ^ cdorgaoarrecad.gethashcode(); return hashcode; } public override bool equals(object obj) { var tocompare = obj agencia; if (tocompare == null) { return false; } return (this.gethashcode() != tocompare.gethashcode()); } } public class agencia : agenciapk { public virtual orgaoarrecad orgaoarrecad { get; set; } [displayname("nome")] public virtual string nmagencia { get; set; } [displayname("digito")] public virtual string nrdigitoagencia { get; set; } [displayname("número")] public virtual string nragencia { get; set; } [displayname("descrição")] [stringlength(20)] public virtual string dscompl { get; set; } [displayname("logradouro")] public virtual string nmlograd { get; set; } [displayname("bairro")] public virtual string nmbairro { get; set; } public virtual system.nullable<short> idsituacagencia { get; set; } [displayname("cep")] public virtual system.nullable<short> nrcep { get; set; } }
i have class called convenio have composite key composed 1 string collumn (cdconvenio) , int cdorgaoarrecad.
[serializable] public class conveniopk { [displayname("código")] [stringlength(20)] public virtual string cdconvenio { get; set; } [displayname("cód. Órgão arrecadador")] public virtual system.int16 cdorgaoarrecad { get; set; } public override int gethashcode() { int hashcode = 13; if (cdconvenio != null) hashcode = hashcode ^ cdconvenio.gethashcode() ^ cdorgaoarrecad.gethashcode(); return hashcode; } public override bool equals(object obj) { var tocompare = obj convenio; if (tocompare == null) { return false; } return (this.gethashcode() != tocompare.gethashcode()); } } public class convenio : conveniopk { [displayname("Órgão arrecadador")] public virtual orgaoarrecad orgaoarrecad { get; set; } [displayname("data início")] [datatype(datatype.date)] public virtual system.datetime dtinicioconvenio { get; set; } [displayname("data término")] [datatype(datatype.date)] public virtual system.datetime dtfinalconvenio { get; set; } [displayname("tipo")] public virtual short tpconvenio { get; set; } [displayname("tarifa")] public virtual short tptarifaconvenio { get; set; } [displayname("valor tarifa")] public virtual double vltarifaconvenio { get; set; } [displayname("quantidade dias")] public virtual short qtdiasfloat { get; set; } }
and when access class agencia using mapping class agenciamap, works fine.
public class agenciamap : fluentnhibernate.mapping.classmap<agencia> { public agenciamap() { table("sci_agencia"); compositeid() .keyproperty(x => x.cdagencia, "cd_agencia") .keyproperty(x => x.cdorgaoarrecad, "cd_orgao_arrecad"); map(x => x.cdorgaoarrecad).column("cd_orgao_arrecad").not.nullable(); map(x => x.nmagencia).column("nm_agencia").customtype("ansistring").length(30).not.nullable(); references<orgaoarrecad>(x => x.orgaoarrecad, "cd_orgao_arrecad").foreignkey().not.update() .not.insert() .cascade.none().not.nullable().not.lazyload().fetch.join(); } }
but, when try access class convenio, using class conveniomap:
public class conveniomap : fluentnhibernate.mapping.classmap<convenio> { public conveniomap() { table("convenio"); compositeid() .keyproperty(x => x.cdconvenio, "cd_convenio") .keyproperty(x => x.cdorgaoarrecad, "cd_orgao_arrecad"); map(x => x.cdconvenio).column("cd_convenio").customsqltype("varchar2(20)").customtype("ansistring").length(20).not.nullable(); map(x => x.cdorgaoarrecad).column("cd_orgao_arrecad").not.nullable(); map(x => x.dtinicioconvenio).column("dt_inicio_convenio").customsqltype("date").not.nullable(); map(x => x.dtfinalconvenio).column("dt_final_convenio").customsqltype("date").not.nullable(); map(x => x.tpconvenio).column("tp_convenio").customsqltype("number(2,0)").not.nullable(); map(x => x.tptarifaconvenio).column("tp_tarifa_convenio").customsqltype("number(2,0)").not.nullable(); map(x => x.vltarifaconvenio).column("vl_tarifa_convenio").customsqltype("number(15,2)").not.nullable(); map(x => x.qtdiasfloat).column("qt_dias_float").customsqltype("number(3,0)").not.nullable(); references(x => x.orgaoarrecad) .column("cd_orgao_arrecad") .foreignkey().not.update() .not.insert() .cascade.none() .not.nullable() .not.lazyload() .fetch.join(); } }
when map collumn type string "cd_convenio", i'm getting error:
wrong column type in sci.convenio column cd_convenio. found: varchar2, expected nvarchar2(255)
the specific part of code i'm in doubt this:
compositeid() .keyproperty(x => x.cdconvenio, "cd_convenio") .keyproperty(x => x.cdorgaoarrecad, "cd_orgao_arrecad");
so, here question: doing wrong?
Comments
Post a Comment