Ignora la mappatura automatica FluentNHibernate
-
28-10-2019 - |
Domanda
Ho bisogno di modifiche per il tipo di dati della classe successiva assunto per impostazione predefinita FluentNHibernate Automapping
public class plaparte
{
public virtual int id { get; private set; }
public virtual int vivos { get; set; }
public virtual int lesionados { get; set; }
public virtual int quemados { get; set; }
public virtual int muertos { get; set; }
public virtual int otros { get; set; }
public virtual string colaboracion { get; set; }
public virtual decimal hectareas { get; set; }
public virtual string reconocimiento { get; set; }
public virtual string disposiciones { get; set; }
public virtual plaserv plaserv { get; set; }
}
}
Per questa classe ho bisogno solo del tipo di stringa da convertire in TEXT nel database Se cambio di
public virtual string[] reconocimiento { get; set; }
FluentNHibernate accetta un tipo di dati BLOB
Posso fare qualcosa del genere?
public class plaparteMappingOverride : IAutoMappingOverride<plaparte>
{
public void Override(AutoMapping<plaparte> mapping)
{
Map(x => x.disposiciones).CustomSqlTypeIs("TEXT");
}
}
Soluzione
Per risolvere il problema che sto usando:
using System.ComponentModel.DataAnnotations;
...
public class plaparte
{
...
[StringLength(4000)]
public virtual string disposiciones { get; set; }
Per creare campi TESTO
[Aggiorna]
Per lavoro devo creare la prossima classe
class StringLengthConvention : AttributePropertyConvention<StringLengthAttribute>
{
protected override void Apply(StringLengthAttribute attribute, IPropertyInstance instance)
{
instance.Length(attribute.MaximumLength);
}
}
è anche necessario aggiungere la convenzione Fluent automap Mi piace
static AutoPersistenceModel CreateAutomappings()
{
return AutoMap.AssemblyOf<plaparte>(new mapAutomapConfiguration())
.Conventions.Setup(c =>
{
c.Add<StringLengthConvention>();
});
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow