首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

忽略NHibernate代理的公共/内部字段

忽略NHibernate代理的公共/内部字段是指在使用NHibernate作为ORM框架时,如何避免NHibernate代理类影响到原始类的公共/内部字段。

NHibernate是一个.NET平台的对象关系映射(ORM)框架,它可以将数据库表与.NET对象之间建立映射关系。在使用NHibernate时,会生成一个代理类,该代理类继承自原始类,并且添加了一些额外的属性和方法,以便实现懒加载、数据跟踪等功能。

然而,有时候原始类中的公共/内部字段会与代理类中的属性产生冲突,导致程序出现异常。为了避免这种情况,可以使用以下方法忽略NHibernate代理的公共/内部字段:

  1. 使用[field]属性来标记原始类中的字段,指定该字段不应该被NHibernate映射。例如:public class MyClass { [field: NonSerialized] public int MyField; }public class MyClass { [Ignore] public int MyField; }public class MyClass { [NonSerialized] public int MyField; }public class MyClass { [NotMapped] public int MyField; }通过使用以上方法,可以避免NHibernate代理的公共/内部字段影响到原始类的公共/内部字段,从而避免程序出现异常。
  2. 使用[Ignore]属性来标记原始类中的字段,指定该字段不应该被NHibernate映射。例如:
  3. 使用[NonSerialized]属性来标记原始类中的字段,指定该字段不应该被NHibernate映射。例如:
  4. 使用[NotMapped]属性来标记原始类中的字段,指定该字段不应该被NHibernate映射。例如:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

创建公共内部体验

如今,云计算已经彻底改变了我们构建IT企业内部系统方式。事实上,企业IT部门在云计算诞生以来,一直复制自己数据中心内云计算力量。...在这篇文章中,将一步步了解利用本地公共价值。其中包括利用你可能不知道云计算概念路径,而这个方式将为软件定义数据中心(SDDC)提供新技术支持。 公共云体验 有关公共这些数据将是压倒性。...展望未来,公共功能将变得更加丰富,而额外功能可以满足或超过企业目前在内部运行功能需求。这导致公共云成为了所需平台选择,虽然企业可能会受到限制,但他们能够真正获得采用公共各方面好处。...建立内部部署私有云 那么,内部部署私有云将具备哪些可以满足你需求所需能力?...企业使用SDDC和融合系统,以及最佳私有云平台,可以为企业提供一个公共云有效选择。 随着云计算不断发展和普及,公共云变得更加强大,而许多企业在使用公共云资源方面仍然有所担心。

1.4K50

@JsonView注解如何优雅忽略字段返回

Avengers 之前我在写接口时候,经常返回一些前台不需要一些字段,举个例子,像用户表,一般由用户名、密码、电话、注册时间等信息,但是我们一般在前台展示时候是不需要将注册时间展示给用户,有的朋友可能说了...,直接使用@JsonIgnore注解就可以忽略字段,确实给属性字段加了该注解确实可以让它不返回给前台,但是还有这样一个需求,我们一般都有一个后台管理系统需要管理所有的用户,我们需要查看这个用户是什么时候注册...JsonView(UserDetailView.class) private Date registeredTime; } 我们在上方分别定义了两个接口,使用@JsonView注解,我们将前台需要展示字段指向...user.setRegisteredTime(new Date()); return R.data(user); } } 我们需要在Controller方法上面也加@JsonView注解,需要注明我们返回哪些字段...,它里面装就是我们刚才配置那些字段,最后我们来看一看结果。

1.7K30
  • SpringBoot项目中公共字段填充

    公共字段填充 思路: 利用是SpringBootAop思想和自定义注解和反射机制方法来实现 项目中我涉及公共字段有createTime、updateTime、createUser、updateUser...自定义注解AutoFill,用于标识需要进行公共字段自动填充方法 /** * 数据库操作类型 使用是枚举方法 */ public enum OperationType { ​    /**...自定义切面类AutoFillAspect,统一拦截加入了AutoFill注解方法,通过反射为公共字段赋值 /** * 自定义切面,实现公共字段字段填充处理逻辑 */ @Aspect @Component...   @Before("autoFillPointCut()")    public void autoFill(JoinPoint joinPoint){        log.info("开始进行公共字段填充...在Mapper需要自动填充公共字段方法上加入AutoFill注解    @Insert("insert into category (type, name, sort, status, create_time

    33440

    一日一技:字符串format忽略缺失字段

    摄影:产品经理 炸牛奶 在一些大型项目的开发中,我们需要创建很多字符串模板,然后在需要时候填入对应信息。...,返回格式化字符串所需要字段,然后在一个专门函数中统一组装报错信息,例如: def make_request(url): resp = requests.get(url) if resp.status......用日志或者其他方式输出报错信息... except Exception as e: msg = template_3.format(e=e) 但.format有一个问题:参数中字段可以比字符串实际需要多...例如: 也可以直接使用字典来传入: 如果字符串模板里面需要某个key,但是.format传入参数又没有这个key,代码就会报错。 当项目代码规模变大以后,很容易出现传入字典缺少值情况。...有没有办法让Python在遇到.format参数缺值时候,自动忽略呢?

    66010

    NET中小型企业项目开发框架系列(一个)

    公共方法实现 数据訪问层: ICMSDAL:数据訪问层接口 CMSDAL:数据訪问层实现 领域模型层: Entity:这是EF建立模型 集合类层: Collections:封装了分页,对于集合类内部增删改查...,对集合类内部增删改查。...界面层: ComplaintManageSystem:基本MVC和LigerUI实现界面部分 TZHSWEET.UI:关于MVC公共UI定义部分 公共类库部分: 我们目标是“0”增删改查数据訪问层实现...,主要是靠Nhibernate定义通用增删改从,然后其它类继承增删改查接口和对应自己定义子类接口,实现拓展 首先,我们从曾经写代码经验知道,我们Dao主要是做增删改查等方面,我们就先定义一个公共方法接口叫做...接下来,就是Dao部分,我们须要非常谨慎去设计, 首先我们要设计一个用Nhibernate实现公共父类CommonSupportDAL类,用它来实现增删改查, <span style="font-family

    57410

    一文读懂 Java 动态代理,那些面试中你容易忽略细节!

    这里有个重点,通过代理类对象jackProxy去调用方法和接口实现类对象jack去调用方法是有明显区别的,通过代理方式去调用,可以在原来方法执行前后做一些其它操作,这就是代理模式特点 那些你容易忽略细节...首先回顾一下动态代理实现流程: 1、通过Proxy.newProxyInstance方法创建一个代理对象; 2、在内部类InvocationHandlerinvoke()方法中做一些操作:利用反射调用被代理类...jack,所以用jack类加载器 interfaces :是一个接口类集合,具体来说是代理类实现接口集合,也是被代理类实现接口集合; h :代理类对象调用方法时需要用到一个接口对象,在系统生成代理内部会用到它...}); //方法调用 jackProxy.exam(); } } 看一下InvocationHandler中invoke()方法内部调用...因为proxy是代理实例,也就是这里jackProxy,当这个对象方法被调用时候会触发InvocationHandler中invoke()方法,而InvocationHandler内部又再次调用proxy

    44630

    NHibernate介绍「建议收藏」

    C#可用以解决对象/关系数据库映射工具有多种,常见有EF (Entity Framework)、NHibernate、iBATIS等,各自优缺点及适用场景在此不做讨论,本文只对如何使用NHibernate...NHibernate使用核心组件。...要注意是所有需要持久化属性必须是虚拟,并且要开启延迟加载,所有数据模型类中公共方法必须是虚拟,哪怕它们并没有包含到映射文件中。 通常来讲,最好把所有的属性都设置为虚拟。...id元素告诉NHibernate哪个数据库字段和对应对象作为一个唯一键来使用。在本例中,我们使用Id这个字段。 generator元素告诉NHibernate怎样给新实体来创建唯一ID。...property标签是见得最多标签。它简单地映射一个到数据表或者视图中对应字段映射。

    67420

    NHibernate详解

    大家好,又见面了,我是你们朋友全栈君。 什么是NHibernateNHibernate 是一个基于.Net 针对关系型数据库对象持久化类库。...NHibernate 为你处理这些,远胜于你不得不写SQL去从数据库存取对象。你代码仅仅和对象关联,NHibernat 自动产生SQL语句,并确保对象提交到正确表和字段中去。...简要看一下,你将发现NHibernate所要做工作。name属性值正是我们.Net 类属性,column属性值将是我们数据库里字段。...好了,让我们回到标签id, 你可以猜测到这个标签将是映射数据库表主键,的确如此,id标签组成和我们刚才看property标签是相似的。我们映射属性到目标数据库字段。...那里有一堆属性你需要调整来确定如何让NHibernate来访问数据库。再次说明,你可以在文档里获取更多信息。 NHibernate使用log4net来记录内部发生一切。

    66730

    Python中使用deepdiff对比json对象时,对比时如何忽略数组中多个不同对象相同字段

    一般是用deepdiff进行对比时候,常见对比是对比单个json对象,这个时候如果某个字段结果有差异时,可以使用exclude_paths选项去指定要忽略字段内容,可以看下面的案例进行学习:...上面的代码是一般单条数据对比情况。...那么如果数据量比较大的话,单条对比查询数据效率比较低,因此,肯呢个会调用接口进行批量查询,然后将数据转成[{},{},{}]列表形式去进行对比,那么这个时候再使用exclude_paths就无法直接简单排除某个字段了...从上图可以看出,此时对比列表元素的话,除非自己一个个去指定要排除哪个索引下字段,不过这样当列表数据比较多时候,这样写起来就很不方便,代码可读性也很差,之前找到过一个用法,后来好久没用,有点忘了,今晚又去翻以前写过代码记录...这里对比还遇到一个问题,等回头解决了再分享: 就这种值一样,类型不一样,要想办法排除掉。要是小伙伴有好方法,欢迎指导指导我。

    71520

    NHibernate VS IbatisNet

    NHibernate对数据库结构提供了较为完整封装,NHibernateO/R Mapping实现了PO 和数据库表之间映射,以及SQL 自动生成和执行。...具体SQL 需要程序员编写,然后通过映射配置文件,将SQL所需参数,以及返回结果字段映射到指定PO。...使用IbatisNet提供ORM机制,对业务逻辑实现人员而言,面对是纯粹DotNet对象,这一层与通过NHibernate实现ORM 而言基本一致,而对于具体数据操作,NHibernate会自动生成...同样需求 ,IbatisNet 工作量比 NHibernate 要大很多。...类似的,如果涉及到数据库字段修改, NHibernate 修改地方很少,而 IbatisNet 要把那些 sql mapping 地方一一修改。 6 .

    74870

    NHibernate总结

    现在项目中数据访问使用NHibernate一个ORM框架,小弟也是在后期加入项目组,之前对NHibernate就一直没有接触过,所以一直在学习NHibernate,都是一些很基础一些东西,写出来总结一下...如果你下个系统学习NHibernate,给大家推荐一个博客,详细介绍了NHibernate,我也是根据这篇博客学习。...NHibernate目标是对于开发者通常数据持久化相关编程任务,解放其中95%。并请记住NHibernate作为数据库访问层,是与你程序紧密集成。...,其中People实体类中字段要设置为virtual。每个文件详细代码在下面介绍 (2)     在NH.Data层引用Nhibernate相关DLL ?...映射文件告诉NHibernate它应该访问数据库里面的哪个表及使用表里面的哪些字段。 <?xml version="1.0" encoding="utf-8" ?

    91940

    NHibernate中对同一个对象Lazyload要设置一致

    NHibernate中出于性能考虑,经常使用Lazyload方式来加载关联对象,关于什么是Lazyload,以及怎么使用,可以参见博客园中文章,比如:http://www.cnblogs.com.../lyj/archive/2008/10/28/1321494.html 常用NHibernate.ByteCode.Castle动态代理来实现Lazyload,使用该程序集会在运行时创建实体对应代理类...,如果实体使用了继承关系,并通过NHibernate来映射,那么动态代理类在类型转换时会有问题。...我在调用Flow.Node之前,调用了Task对象,所以NHibernate根据TaskMapping设置,将Node设置为动态代理类,同时将Node缓存到了Session中,然后再调用Flow.Node...总的来说,如果在NHibernate中用到了继承类,如果同时用到了Lazyload,那么在转换类型时就可能抛出异常。解决办法就是将Lazyload取消,改为立即加载。

    32120

    c# 常用框架整理

    NHibernate https://github.com/nhibernate NHibernate是现在开发人员用较多一个ORM。...XProxy http://xproxy.codeplex.com/ XProxy是一个支持插件基础代理程序集。通过编写简单插件程序,你将能开发各种各样代理程序。...XProxy是一个支持插件开发数据交换机,可以编写插件对中转数据进行处理。内置有NAT插件、加解密插件、反向代理、直接代理、间接代理等插件。...持久层框架 NHibernate NHibernate是一个面向.NET环境针对关系型数据库对象持久化类库。...你 代码仅仅和对象关联,NHibernat自动产生SQL语句,并确保对象提交到正确表和字段中去.大量减少开发时人工使用SQL和ADO.NET处理 数据时间.

    4.8K10
    领券