Liu*_*Liu 2 mapping nhibernate nhibernate-mapping-by-code
我使用Fluent NHibernate作为我的NHibernate项目的映射机制.但是当谈到NHibernate 3.2时,我意识到它已经内置了代码映射,并且没有为NHibernate 3.2发布Fluent Nhibernate版本.
当我想为实体属性设置默认值时,我遇到了一个问题,我没有找到API来做到这一点.有人可以提一些建议吗?
我还没有使用代码映射,但是NHibernate.Mapping.ByCode.Impl.ColumnMapper类有一个方法Default(object defaultValue).NHibernate的JIRA中的这个问题除了指出一个警告之外,还展示了如何使用它:
mapper.Class<MyDomainObject>(map => map.Property
(s => s.TermService,
pm => pm.Column(cm => cm.Default("'my default value'"))));
Run Code Online (Sandbox Code Playgroud)
这是你在找什么?
我找到了这段代码.可以帮助你.
Property(x => x.Property, m =>
{
m.Column("columnName");
// or
m.Column(c =>
{
c.Name("columnName");
c.Default("defaultValue");
c.SqlType("varchar(max)");
c.Length(SqlClientDriver.MaxSizeForLengthLimitedString + 1);
c.NotNullable(true);
c.Check("len(columnName) > 1");
c.Precision(2);
c.Scale(2);
c.Index("column_idx");
c.Unique(true);
c.UniqueKey("column_uniq");
});
m.Type<string>(); // or IUserType
m.Update(true);
m.Insert(true);
m.Formula("arbitrary SQL expression");
m.Access(Accessor.Field); // or Accessor.Property or Accessor.NoSetter
// or
m.Access(typeof(CustomAccessor));
m.OptimisticLock(false);
m.Generated(PropertyGeneration.Insert); // or PropertyGeneration.Always or PropertyGeneration.Never
m.Lazy(true);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3133 次 |
| 最近记录: |