我有以下实体
public class Entity{
public virtual int Id { get; set; }
public virtual DateTime CreatedDateTime { get; protected set; }
}
我有以下nhibernate流利映射
public class EntityMap : ClassMap<Entity>
{
public Entity()
{
Id(x => x.Id);
Map(x => x.CreatedDateTime)
.Not.Nullable()
.Default("GETUTCDATE()")
.ReadOnly();
}
}
当我将此实体(带有_session.Persist(entity)
)保存到数据库中时,它会更新生成的id,但它不会更新CreatedDateTime值,尽管CreatedDateTime会在数据库中正确生成。是否有任何方法可以配置此实体以在插入后返回自动生成的值?
感谢
答案 0 :(得分:1)
对于CreatedDateTime属性的EntityMap映射,可以使用Generated属性 -
<activity
android:name="tutorials"
android:label="@string/app_name">
</activity>
这将检索在表格行中生成的UTC日期。
您的示例代码看起来像您的Entity表的某种id生成器。目前尚不清楚您在哪里生成您的Id字段(在客户端或数据库中)。如果要在数据库中生成Id,还可以修改EntityMap以从数据库中获取Id -
Map(x => x.CreatedDateTime).Generated.Always();
这将在您保存对象时使用数据库生成的Identity加载默认初始化的Entity对象(假设您从数据库端生成它)。
希望有所帮助。