选择时Nhibernate更新实体

性感的MF

我有这个实体:

public class Permission 
{
    public virtual int Id{get;set;}
    public virtual string Entity { get; set; }
    public virtual bool ReadAction { get; set; }
    public virtual bool UpdateAction { get; set; }
    public virtual bool CreateAction { get; set; }
    public virtual bool DeleteAction { get; set; }
    public virtual Role Role { get; set; }

    public virtual string RoleName
    {
        get { return Enum.GetName(typeof(Role),this.Role}
    }
}

public class PermissionMap : ClassMap<Permission>
{
    public PermissionMap()
    {
        Id(x => x.Id, "id").GeneratedBy.Identity().UnsavedValue(0);
        Map(x => x.Entity);
        Map(x => x.DeleteAction).CustomType<BooleanType>();
        Map(x => x.ReadAction).CustomType<BooleanType>();
        Map(x => x.CreateAction).CustomType<BooleanType>();
        Map(x => x.UpdateAction).CustomType<BooleanType>();
        Map(x => x.Role).CustomType<int>();
    }
}

public enum Role 
{
   Administrator = 0,
   SalesPerson = 1,
   Marketing = 2
}

每次查询数据库时,它都会更新。
我以为这是因为RoleName,但是当我删除它时,事件仍然得到更新。
数据库中每一行的Permission获取更新。谢谢

拉迪姆·科勒

正如评论中所讨论的那样,重点是,我们一直在进行会议。它是如此智能,以至于即使在读取操作期间,它也可以通过其ID跟踪所有项目。

如果任何对象以某种方式更改(例如,出于渲染或传输的原因)并且仍被打开的会话引用,则将其作为脏对象进行管理。session.Fulsh()调用时(通常默认情况下是在事务Commit()上默认,甚至在自动时,取决于FlushMode),任何脏对象都将保留。

因此,为避免发出UPDATE语句,实体映射及其内容必须匹配。到最后Shazam成立了,在这种情况下,罪魁祸首就是这种映射

// Map(x => x.Role).CustomType<int>();
Map(x => CustomType<Role>()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在流利的Nhibernate中保存/更新实体时保留DateTime

来自分类Dev

NHibernate如何更新实体中新插入的ID?

来自分类Dev

更新APIGEE实体时出错

来自分类Dev

更新子实体时出错

来自分类Dev

使用NHibernate时如何处理不同的实体实例?

来自分类Dev

实体框架-更新对象时更新列表

来自分类Dev

mvc 实体框架选择 case 时

来自分类Dev

NHibernate不保存实体

来自分类Dev

更新实体框架的dbModel时出错

来自分类Dev

更新实体框架的dbModel时出错

来自分类Dev

更新实体时出错 - Symfony 3

来自分类Dev

AngularJS在选择时更新内容

来自分类Dev

NHibernate Antlr.Runtime.MismatchedTokenException更新表时

来自分类Dev

NHibernate Save正在尝试在更新时清除子KeyColumn ID

来自分类Dev

NHibernate Save正在尝试在更新时清除子KeyColumn ID

来自分类Dev

AngularJs在模型更新时选择不更新

来自分类Dev

AngularJs在模型更新时选择不更新

来自分类Dev

在nhibernate中删除具有多对多关系的实体时,不会删除该关系

来自分类Dev

NHibernate:仅当引用的实体不为null时,才对其进行检查

来自分类Dev

NHibernate中只读实体的背景

来自分类Dev

在NHibernate实体中执行查询

来自分类Dev

Nhibernate QueryOver JoinAlias无关实体

来自分类Dev

更新嵌套实体 (ManyToOne),当使用 JPA CascadeType 更新根实体时

来自分类Dev

在实体框架中使用包含语句时选择特定的列

来自分类Dev

在jhipster上创建新实体时无法选择类型枚举

来自分类Dev

NHibernate选择复数和

来自分类Dev

未选择选择值(或选择为空)时,自动删除BD中的实体

来自分类Dev

在并发数据库更新时锁定实体框架代码

来自分类Dev

使用JPA更新时如何排除实体字段

Related 相关文章

热门标签

归档