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

什么是NHibernate中的投影?

投影 (Projection) 是 NHibernate 中的一种技术,用于将对象关系映射 (ORM) 中的实体数据映射到查询结果。投影可以让我们以声明式的方式精确地控制查询结果,优化性能,并减少不必要的数据传输。

在 NHibernate 中进行投影,可以使用 Projections 注解在 ICriteriaISingleResult 上添加投影。投影类型包括:

  1. 属性 (Property):将一个实体属性映射到一个查询结果。
  2. Projections.Distinct():创建一个只包含唯一值的投影。
  3. Projections.Id():返回实体标识符。
  4. Projections.Property():返回一个实体属性。
  5. Projections.Constructor():返回一个实体构造函数。
  6. Projections.Base64():将结果转换为 Base64 字符串。
  7. Projections.String():将结果转换为字符串。

以下是一个示例,展示了如何使用投影从 Customer 实体中获取 FullName 属性:

代码语言:csharp
复制
using (var session = factory.OpenSession())
using (var transaction = session.BeginTransaction())
{
    var customer = session.Get<Customer>(customerId);
    customer.FullName = session.CreateCriteria<Customer>()
        .SetProjection(Projections.Property("FullName"))
        .UniqueResult();
    transaction.Commit();
}

在这个示例中,我们使用 Projections.Property() 方法将 FullName 属性投影到一个结果集。UniqueResult() 方法确保只返回一个结果,如果有多余的结果,它会引发异常。

投影是 NHibernate 中一个强大的功能,可以让我们在执行 SQL 查询时只获取所需的特定数据,从而提高应用程序的性能和可维护性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

OpenGL投影使用

大家好,又见面了,我全栈君,祝每个程序员都可以多学几门语言。 OpenGL投影使用 在OpenGL投影矩阵指定了可视区域大小和形状。...对于正投影与透视投影这两种不同投影类型,它们分别有各自用途。 正投影 它适用于2D图形,如文本、建筑画图等。在它应用场合,我们希望在屏幕上展示准确物体大小和度量。...透视投影 它使用透视除法,对距离观察者较远物体进行缩短和收缩。...下图展示了*截头体(frustum)所定义透视投影,它观察方向从狭窄端到宽阔端。...以下代码设置使用了透视投影,展示了一个由太阳(黄色)、地球(红色)、月亮(灰色)三者构成运动系统。

81110
  • java什么重载什么重写_java重载

    大家好,又见面了,我你们朋友全栈君。...我们先从定义上区分重载和重写: 1、重载(overload)发生在同个类具有相同方法名,不同参数类型(不同参数类型包括:参数个数和参数类型和顺序不同),返回值相同或者不同一种多态体现...例如:下类AnimalgetFun方法构成了方法重载 public class Animal{ public void getFun(){ System.out.println(“####...(2):子类必须重写父类抽象方法(abstract修饰方法) (3):子类不能继承父类被private修饰属性和方法 (4):子类不能继承父类构造器 列:下列类B方法doSomething重写了类...A方法doSomething public class A{ public String doSomething(Stirng name){ System.out.println(“我父类方法

    1.6K10

    什么Javascript提升

    所以,这里发生了什么?通常来说,人们会把提升解释为声明被移动到了代码顶端。虽然看起来这是正在发生事情,但是清楚理解到底如何才是重要。...显然,代码没有被移动到任何地方,并没有被神奇移动到文件顶端。真正发生事情,在编译阶段,函数和变量声明就被加入内存了。...在上面的例子,正因为这个原因,才能在其代码出现位置之前就访问或调用那个函数。...再看看变量例子: 当声明并初始化一个变量,然后试图使用它时,典型做法: var a = 3; console.log(a); // 3 但是,如果把变量声明放在代码底部会如何呢?...预想3没有打印出来,却成了 undefined。 为什么会这样?因为 JS 只会提升声明。而初始化赋值不会被提升。

    80430

    什么台?

    本文链接:https://blog.csdn.net/pyycsd/article/details/102803260 没有时代 在传统IT企业,项目的物理结构是什么呢?...什么前台? 首先,这里所说“前台”和“前端”并不是一回事。...所谓前台即包括各种和用户直接交互界面,比如web页面,手机app;也包括服务端各种实时响应用户请求业务逻辑,比如商品查询、订单系统等等。 什么后台?...而这个中间组织,就是人们所说台”。 领跑者 SuperCell一家芬兰手机游戏公司,这个名字或许有些陌生,但是说起下面几款游戏,大家一定会很熟悉: 部落冲突 ? 海岛奇兵 ?...是什么让SuperCell公司能够如此高效地试错和迭代呢?他们依靠强大平台资源,支撑起各个游戏开发小团队。 他们开发出游戏看上去风格迥异,却存在许多共同之处。

    97410

    如何使用Fluent NhibernateAutomapping进行OR Mapping映射

    使用Fluent NHibernate最大好处降低了出错机会,因为Fluent Nhibernate配置使用C#来编写,可以智能感知,而且还能编译,不像原始XML配置,写错了都不知道。...更多修改意味着更多风险,为了减少这方面的风险,同时为了减少配置工作量,所以在最新项目中采用了Fluent NHibernateAutomapping。...(比如Course和Student多对多关系,那么产生中间表表名为COURSE_STUDENT) 对于枚举,在数据库中使用tinyint也就是一个Byte来存储,枚举在Automapping作为UserType..."Id";//指定了每个类Id属性就是该类主键 } public override bool IsDiscriminated(Type type)//指定了哪些类需要进行SubClass...最后将这些接口通知给FluentNhibernate,让其应用这些接口,导入指定AssemblyDomainModel,具体实现方法: public virtual AutoPersistenceModel

    1.1K10

    OpenCV图像处理投影技术”使用

    问题引出 本文区分”问题引出“、”概念抽象“、”算法实现“三个部分由表及里具体讲解OpenCV图像处理投影技术”使用,并通过”答题卡识别“”OCR字符分割”“压板识别”“轮廓展开分析”四个例子具体讲解算法使用...使得读者能够对“投影技术”加速认识和理解,从而在解决具体问题时候多一个有效方法。我第一次集中遇到需要“投影”技术解决问题,在“答题卡”项目中。 ?...在这波峰波谷,存在着“量化”结果,对应了答题卡定位关系 概念抽象 在前面的分析里,我们已经基本建立起“投影概念。...在这样OCR识别,首先可以通过投影方法,实现字符分割。 2 . 压板识别 ? ? 在这样项目中,同样可以通过投影方法,获得各个压板准确定位。 3、轮廓展开分析 ?...在类似树叶这样测量,可以通过“极坐标转换”,将树叶这样曲线转换成可以分析投影,从而得到比如“树叶有多少个分叉”“有无缺陷”这样定量信息。 君子藏器于身,待时而动

    1.3K20

    什么Python顺序表

    由于每个链接所需存储量相同,通过上述公式,可以计算出元素链接存储位置,而后顺着链接找到实际存储数据元素。注意,图2c不再数据元素大小,而是存储一个链接地址所需存储量,这个量通常很小。...一个顺序表完整信息包括两部分,一部分元素集合,另一部分为实现正确操作而需记录信息,即有关表整体情况信息,这部分信息主要包括元素存储区容量和当前表已有的元素个数两项。...:3 T[0]=1 T[1]=4 T[2]=2 T[3]=3 你要找元素下标:1 T[0]=1 T[1]=2 T[2]=3 知识点扩展: Pythonlist和tuple两种类型采用了顺序表实现技术...这就是为什么用list.append(x) (或 list.insert(len(list), x),即尾部插入)比在指定位置插入元素效率高原因。...以上就是什么Python顺序表详细内容,更多关于Python顺序表详解资料请关注ZaLou.Cn其它相关文章!

    1.5K20

    一文读懂什么台?什么数据台?

    什么台? 按照数据咨询公司Thoughtworks首席咨询师王健给出10个字定义,台就是: “企业级能力复用平台” “企业级”划定了范围,区分开了单系统服务化与微服务。...最早由阿里在2015年提出“大中台,小前台”战略延伸出来概念。它灵感来源于芬兰小公司Supercell,这家公司仅有300名员工,却接连推出爆款游戏,全球最会赚钱明星游戏公司。...恰恰这家小公司,开创了“玩法”,并将其运用到了极致。这家看似很小公司,设置了一个强大台,用以支持众多小团队进行游戏研发。...然而,企业经营过程由多方面因素共同作用。那么台建设能解决多少问题? 台解决了什么痛点? 痛点一:企业前方市场与企业内部支撑冲突 ? 用户和用户需求永远善变。...数据核心理念在于“数据取之于业务,用之于业务”,即它相比于数据平台注重对业务积累和沉淀,构建了从数据生产到消费,消费后产生数据再回流到生产流程闭环过程。

    2K32

    什么Spring Boot@Async

    在本文中,我将尝试探索 Spring Boot 异步方法和 @Async 注解,试图解释多线程和并发之间区别,以及何时使用或避免它。 Spring@Async是什么?...Spring @Async 注解支持方法调用异步处理。它指示框架在单独线程执行该方法,允许调用者继续执行而无需等待该方法完成。这 提高了应用程序整体响应能力和吞吐量。...综上所述,@Async一种更高层次抽象,它为开发人员简化了异步处理,而多线程和并发更多手动管理并行执行。 何时使用 @Async 以及何时避免它。...在这种情况下,最重要一点对异步服务调用,在我们例子compute()必须从同一类外部完成。如果我们在一个方法上使用@Async并在同一个类调用它,它将不起作用。...总结 Spring @Async 注解在应用程序启用异步处理强大工具。通过使用@Async,我们不需要陷入并发管理和多线程复杂性来增强应用程序响应能力和性能。

    14710

    什么Python匿名函数

    匿名函数 lambda x , y : x+y 1.匿名目的就是要没有名字,给匿名函数赋给一个名字没有意义。 2.匿名函数参数规则、作用域关系与有名函数一样。...print(salaries) # salaries=sorted(salaries,key=lambda x:salaries[x]) #默认升序排 alaries=sorted(salaries...,'salary':'2000'} ] l=sorted(info,key=lambda dic:int(dic['salary'])) map 映射, 循环让每个元素执行函数,将每个函数执行结果保存到新列表...num1 + num2 第二步:使用一个变量来去接收这个匿名函数 sum = lambda num1 , num2 : num1 + num2 第三步:调用此匿名函数 sum(10 , 20) 到此这篇关于什么...Python匿名函数文章就介绍到这了,更多相关Python匿名函数知识点总结内容请搜索ZaLou.Cn

    1K10

    什么Python EAFP 哲学

    摄影:产品经理 产品经理心心念念海胆水饺 Python 有一套自己哲学,其中 EAFP 其中比较有名。...在开发过程,我们经常遇到需要多次判断情况,比如说,使用 requests请求一个接口,首先要判断请求返回HTTP Code是不是200,接下来要判断请求返回数据是不是 JSON 格式,接下来要判断数据解析成字典以后...与 EAFP 相对应 LBYL:Look Before You Leap——你跳之前先看看。这种开发风格一般适用于 C 语言。也就是在各种操作之前频繁用 if 先做检查。...当然,EAFP虽然 Python 推荐一种编码风格,但使用时候还是需要看具体情况。我们日常生活,经常听到某某渣男追女神一直追不上,于是直接把事情办了,再跪下来一边打自己脸,一边哭,一边求原谅。...所以说,EAFP 有用是有用,但是不应该在什么地方都用。 我之前有一批文章就特别讲到了,不应该滥用 try … except: 脱离苦海,从避免滥用try…except…开始。

    1.5K10

    什么go泛型

    泛型go在1.18版本引入新特性,泛型引入使得在某些场景下,可以极大简化代码编写,提高了代码复用性。有必要掌握泛型,可以减少很多重复代码。一、为什么需要泛型?为什么我们需要泛型?...在前面我们已经提到了简化代码编写,提高代码复用,这里我们举例详细说明? 假设我们需要实现一个函数,它主要功能做加法计算,比如计算a + b值。...值为:", value)// 缓存hello值为: world}4....什么时候考虑使用范型?当我们发现代码逻辑都一致,唯一不同地方类型不同时,考虑使用泛型。三、注意坑?在使用泛型操作自定义类型时,需要注意它返回值底层类型还是自定义类型,下面我们看一个例子。...fmt.Printf("slice is %T\n", scaledSlice)// slice is main.PointscaledSlice.print()// Point(2, 4)}四、总结什么泛型

    10910

    漫画:什么台?

    没有时代 在传统IT企业,项目的物理结构是什么呢?无论项目内部的如何复杂,都可分为“前台”和“后台”这两部分。 什么前台? 首先,这里所说“前台”和“前端”并不是一回事。...所谓前台即包括各种和用户直接交互界面,比如web页面,手机app;也包括服务端各种实时响应用户请求业务逻辑,比如商品查询、订单系统等等。 什么后台?...领跑者 SuperCell一家芬兰手机游戏公司,这个名字或许有些陌生,但是说起下面几款游戏,大家一定会很熟悉: 部落冲突 海岛奇兵 皇室战争 SuperCell公司就像是一个高产游戏孵化器,...是什么让SuperCell公司能够如此高效地试错和迭代呢?他们依靠强大平台资源,支撑起各个游戏开发小团队。 他们开发出游戏看上去风格迥异,却存在许多共同之处。...从0到1创业型公司,首要目的生存下去,以最快速度打造出产品,证明自身市场价值。 这个时候,让项目野蛮生长才是最好选择。如果不慌不忙地先去搭建中台,恐怕台还没搭建好,公司早就饿死了。

    58110

    漫画:什么台?

    没有时代 在传统IT企业,项目的物理结构是什么呢?无论项目内部的如何复杂,都可分为“前台”和“后台”这两部分。 什么前台? 首先,这里所说“前台”和“前端”并不是一回事。...所谓前台即包括各种和用户直接交互界面,比如web页面,手机app;也包括服务端各种实时响应用户请求业务逻辑,比如商品查询、订单系统等等。 什么后台?...而这个中间组织,就是人们所说台”。 ? ? 领跑者 SuperCell一家芬兰手机游戏公司,这个名字或许有些陌生,但是说起下面几款游戏,大家一定会很熟悉: 部落冲突 ? 海岛奇兵 ?...是什么让SuperCell公司能够如此高效地试错和迭代呢?他们依靠强大平台资源,支撑起各个游戏开发小团队。 他们开发出游戏看上去风格迥异,却存在许多共同之处。...从0到1创业型公司,首要目的生存下去,以最快速度打造出产品,证明自身市场价值。 这个时候,让项目野蛮生长才是最好选择。如果不慌不忙地先去搭建中台,恐怕台还没搭建好,公司早就饿死了。

    52810

    漫画:什么台?

    没有时代 在传统IT企业,项目的物理结构是什么呢?无论项目内部的如何复杂,都可分为“前台”和“后台”这两部分。 什么前台? 首先,这里所说“前台”和“前端”并不是一回事。...所谓前台即包括各种和用户直接交互界面,比如web页面,手机app;也包括服务端各种实时响应用户请求业务逻辑,比如商品查询、订单系统等等。 什么后台?...领跑者 SuperCell一家芬兰手机游戏公司,这个名字或许有些陌生,但是说起下面几款游戏,大家一定会很熟悉: 部落冲突 海岛奇兵 皇室战争 SuperCell公司就像是一个高产游戏孵化器,...是什么让SuperCell公司能够如此高效地试错和迭代呢?他们依靠强大平台资源,支撑起各个游戏开发小团队。 他们开发出游戏看上去风格迥异,却存在许多共同之处。...从0到1创业型公司,首要目的生存下去,以最快速度打造出产品,证明自身市场价值。 这个时候,让项目野蛮生长才是最好选择。如果不慌不忙地先去搭建中台,恐怕台还没搭建好,公司早就饿死了。

    58540

    漫画:什么台?

    01 没有时代 在传统IT企业,项目的物理结构是什么呢?无论项目内部的如何复杂,都可分为“前台”和“后台”这两部分。 什么前台? 首先,这里所说“前台”和“前端”并不是一回事。...所谓前台即包括各种和用户直接交互界面,比如web页面,手机app;也包括服务端各种实时响应用户请求业务逻辑,比如商品查询、订单系统等等。 什么后台?...而这个中间组织,就是人们所说台”。 ? ? 02 领跑者 SuperCell一家芬兰手机游戏公司,这个名字或许有些陌生,但是说起下面几款游戏,大家一定会很熟悉: 部落冲突 ?...是什么让SuperCell公司能够如此高效地试错和迭代呢?他们依靠强大平台资源,支撑起各个游戏开发小团队。 他们开发出游戏看上去风格迥异,却存在许多共同之处。...如果不慌不忙地先去搭建中台,恐怕台还没搭建好,公司早就饿死了。 2. 从1到N阶段,适合搭建中台 当企业有了一定规模,产品得到了市场认可,这时候公司首要目的不再活下去,而是活更好。

    50531

    漫画:什么台?

    01 没有时代 在传统IT企业,项目的物理结构是什么呢?无论项目内部的如何复杂,都可分为“前台”和“后台”这两部分。 什么前台? 首先,这里所说“前台”和“前端”并不是一回事。...所谓前台即包括各种和用户直接交互界面,比如web页面,手机app;也包括服务端各种实时响应用户请求业务逻辑,比如商品查询、订单系统等等。 什么后台?...而这个中间组织,就是人们所说台”。 ? ? 02 领跑者 SuperCell一家芬兰手机游戏公司,这个名字或许有些陌生,但是说起下面几款游戏,大家一定会很熟悉: 部落冲突 ?...是什么让SuperCell公司能够如此高效地试错和迭代呢?他们依靠强大平台资源,支撑起各个游戏开发小团队。 他们开发出游戏看上去风格迥异,却存在许多共同之处。...如果不慌不忙地先去搭建中台,恐怕台还没搭建好,公司早就饿死了。 2. 从1到N阶段,适合搭建中台 当企业有了一定规模,产品得到了市场认可,这时候公司首要目的不再活下去,而是活更好。

    73431
    领券