2010-09-09 3 views
1

J'ai une liste que je suis en train d'entrer dans le DB et je viens avec l'assertion suivante:Courant NHibernate Liste <string> Longueur

{"ORA-12899: value too large for column \"GDATA\".\"CNVTOOLBOX\".\"TOOL\" (actual: 387, maximum: 255)\n"} 

J'Outrepasser la AutoMapping ce qui suit:

public class CnvRootMap : IAutoMappingOverride<CnvRoot> 
{ 
    public void Override(AutoMapping<CnvRoot> mapping) 
    { 
     mapping.Id(x => x.Id, "CnvRootID"); 

     mapping.HasMany(x => x.Toolbox) 
      .AsBag() 
      .Table("CnvToolbox") 
      .Element("Tool", m => m.Type<string>()); 
    } 
} 

Je suis sûr qu'il me manque quelque chose de simple, mais existe-t-il un moyen de désigner la longueur de la colonne comme vous pouvez avec par exemple mapping.Map(x => x.StateLog).Length(2000);?

Merci à l'avance

EDIT

semble la convention suivante, je suis en mesure de changer toutes les chaînes d'avoir un plus grand .Length, mais cela ne semble pas affecter les types de IList<string>. Est-ce que quelqu'un connaît un exemple qui pourrait aider à suivre la route du Congrès?

public class DefaultStringLengthConvention : IPropertyConvention 
{ 
    public void Apply(IPropertyInstance instance) 
    { 
     instance.Length(2000); 
    } 
} 

Répondre

Questions connexes