0

我需要更改默认 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; }
}
}

我只需要这个类将字符串类型转换为数据库中的 TEXT 如果我更改为

public virtual string[] reconocimiento { get; set; }

FluentNHibernate 采用 BLOB 数据类型

我可以做类似的事情吗?

public class plaparteMappingOverride : IAutoMappingOverride<plaparte>
{
public void Override(AutoMapping<plaparte> mapping)
{
  Map(x => x.disposiciones).CustomSqlTypeIs("TEXT");
}
}
4

1 回答 1

1

为了解决我正在使用的问题:

using System.ComponentModel.DataAnnotations;
...
public class plaparte
{
...
[StringLength(4000)]
public virtual string disposiciones { get; set; }

创建 TEXT 字段

[更新]

为了工作,我需要创建下一个课程

class StringLengthConvention : AttributePropertyConvention<StringLengthAttribute>
{
    protected override void Apply(StringLengthAttribute attribute, IPropertyInstance instance)
    {
        instance.Length(attribute.MaximumLength);
    }
}

还需要添加约定的 Fluent automap Like

    static AutoPersistenceModel CreateAutomappings()
    {
        return AutoMap.AssemblyOf<plaparte>(new mapAutomapConfiguration())
            .Conventions.Setup(c =>
            {
                c.Add<StringLengthConvention>();
            });
    }
于 2011-09-30T23:26:41.143 回答