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

使用NHibernate的ASP.NET - 如何获取刚刚在回发时插入的实体的ID

使用NHibernate的ASP.NET,在回发时获取刚刚插入的实体的ID,可以通过以下步骤实现:

  1. 在插入实体的方法中,使用ISession.Save()方法保存实体,该方法会返回实体的ID。
代码语言:csharp
复制
public virtual T Save<T>(T entity) where T : class
{
    using (var session = _sessionFactory.OpenSession())
    {
        using (var transaction = session.BeginTransaction())
        {
            var savedEntity = session.Save(entity);
            transaction.Commit();
            return savedEntity;
        }
    }
}
  1. 在回发时,可以通过调用上述方法获取实体的ID。
代码语言:csharp
复制
var entity = new Entity();
// 设置实体属性
var savedEntity = Save(entity);
var id = savedEntity.Id;
  1. 如果需要在页面回发时获取实体的ID,可以将ID存储在ViewStateSession中。
代码语言:csharp
复制
ViewState["EntityId"] = id;

代码语言:csharp
复制
Session["EntityId"] = id;
  1. 在后续的回发中,可以从ViewStateSession中获取实体的ID。
代码语言:csharp
复制
var entityId = Convert.ToInt32(ViewState["EntityId"]);

代码语言:csharp
复制
var entityId = Convert.ToInt32(Session["EntityId"]);

通过以上步骤,可以在ASP.NET中使用NHibernate获取刚刚在回发时插入的实体的ID。

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

相关·内容

Mybatis使用generatedKey在插入数据返回自增id始终为1,自增id实际返回到原对象当中问题排查

今天在使用数据库时候,遇到一个场景,即在插入数据完成后需要返回此数据对应自增主键id,但是在使用Mybatis中generatedKey且确认各项配置均正确无误情况下,每次插入成功后,返回都是...1,而不是最新自增Id。...终于凭借着一次Debugg发现问题,原来在使用Mabatis中insert或者insertSelective方式插入时,如使用int insert(TestGenKey testGenKey),返回值...int表示插入操作受影响行数,而不是指自增长id,那么返回自增id到底去哪里了呢?...null : sex.trim(); } } 测试及Debugg 编写测试方法测试插入 插入成功后观察对应变量对应值 总结:调用Insert后插入操作之后,所得到自增长Id被赋值到原对象当中

1.7K10
  • Fluent NHibernate之旅二--Entity Mapping

    本节内容: 简单实体映射 使用自定义类型映射实体属性 NHibernate实体映射(Entity Mapping)做非常好,虽然不是完美,但一些我们经常使用,基本上已经都支持了,而且配置也相对比较简单...Map(Expression> expression):与Id类似,对应NHibernateproperty,我这里只是简单映射,还有很多特性,在今后教程中会慢慢使用...Product我们映射好了,我们试着测试一下吧,这一次,我们用传统方式插入数据,用Fluent方式获取数据,测试代码如下: [TestMethod] public void NHibernateFactory...二、使用自定义类型映射实体属性 NHibernate支持我们用自定义类型来映射属性,但因为我是初学,我真的不会,当然我在网上找到了相关资料,在此也不多说,就说说Fluent方式吧,在我映射自定义属性时候...不错不错,测试一切正常,今天代码就到这里。 总结 今天介绍了如何映射简单实体,但很多时候这都是理想数据设计,还有更多复杂,不可预计数据设计,这时候我们Fluent能做到吗?

    1K90

    搭建你Spring.Net+Nhibernate+Asp.Net Mvc 框架 (六)写在后面的话

    这个最后还是采用了cs办法来获取业务逻辑层实体类,多少有点遗憾。     ...下面再回顾一下整个项目搭建流程: 1、准备开发环境:Spring.Net 、NhibernateAsp.Net Mvc、Vs2008 sp1等 2、创建解决方案,添加Service Dao  Model...在此基础上实现IBLL 4、配置hbm实体类映射xml文件      配置web项目的webconfig文件      配置CommonDao.xml----Nhibernate核心配置文件     ...配置Dao层注入xml文件      配置BLL层注入xml文件 5、测试使用 这个系列,总算写差不多了。...分享你我知识,让技术改变世界。系列在不断完善中。。。 希望大家多批评指正! 相关下载 项目中用到:spring.net Nhibernate控件下载 项目:源代码下载

    23310

    NHibernate 批量数据插入测试

    NHibernate 批量数据插入测试 .Net 环境下测试 数据库环境以及 NHibernate 配置 SQL Server 环境为 VS2013 自带 localdb v11.0, 对应 NHibernate...没有提供针对 MySQL BatchingBatcherFactory , 针对 MySQL 测试加载了第三方 NHibernate.MySQLBatcher 测试代码 插入数据测试代码如下...; i < InsertCount; i++) { var data = new TestData { Id = Guid.NewGuid().ToString(... Session 和 StatelessSession 在纯插入数据性能相当, 只是 StatelessSession 不会检查 实体类约束关系, 比如有重复 Id 实体类。...由于 SqlClientBatchingBatcherFactory 在 mono 环境下无法运行, 所以以下两个测试都不使用 batch 。 在 OS X 开发环境下测试结果如下: ?

    1.1K10

    搭建你Spring.Net+Nhibernate+Asp.Net Mvc 框架 (四)配置全攻略

    现在我们开始我们旅程: 第一步:配置实体类【Model】对应数据库映射文件。Nhibernate中要求映射文件必须按照约定文件命名格式进行命名。...至于放到什么项目中都可以,为了便于理解,我们把数据库表和实体类映射文件放到Model项目中。并建立一个专门文件夹Mappings来存放映射文件。添加实体类映射数据库文件User.hbm.xml。...Nhibernate就是这样要求。我们按照模板来配置就行了。User.hbm.xml中配置是根据数据库中表和我们实体类User进行对应。这方面不多讲,可以参考Nhibernate官方文档。...-- Database and NHibernate Configuration这下面是配置使用Nhibernate --> <db:provider id="DbProvider"...实体注入给业务逻辑层 到此为止,我们把Spring.Net和Nhibernate配置基本就搞定了。

    1K20

    DotNetNuke初试水之结合NHibernate开发和导入一个Module

    起初,IBuySpy Portal目的是为了演示,ASP.NET如何能够构架出一个动态,数据驱动门户软件,但是 很快,微软 .NET研发中心将IBS变成了为他们自己开发ASP.NET应用程序所必须一个组件...被称作 IBuySpy WorkShop软件,很快被链接进了微软官方ASP.NET论坛....各层之间使用实体类传递数据; UI+ObjectDatasource可以很好实现和常用控件进行数据绑定(GridView,FormView,ListView),而且页面后台代码几乎不用写。...DataAccessLayer使用Nhibernate实现,很好支持多种业务数据库和同时很多代码生成器支持代码输出,基本CRUD操作不需要开发。...代码重构 生成Nhibernate实体类和Xml文件可以使用CodeSmith或是MyGeneration 应用Nhibernate封装好NHibernate.Repository类库(在

    1.6K20

    NHibernate总结

    现在项目中数据访问使用NHibernate一个ORM框架,小弟也是在后期加入项目组,之前对NHibernate就一直没有接触过,所以一直在学习NHibernate,都是一些很基础一些东西,写出来总结一下...NHibernate不仅仅管理.NET 类到数据库表映射(包括.NET 数据类型到SQL 数据类型映射),还提供数据查询和获取数据方法,大幅度减少我们开发时人工使用SQL和ADO.NET处理数据时间...开始使用NHibernate 我们亲自动手,一步一步实现一个NHibernate简单程序来,我只实现了简单增删改查功能。...首先,我们要从ISessionFactory中获取一个ISession(NHibernate工作单元)。ISessionFactory可以创建并打开新Session。...“内容”,这里需要修改为“嵌入资源”生成,因为NHibernate是通过查找程序集中资源文件映射实体

    92540

    盘点 .NET 比较流行开源ORM框架

    支持 Join 查询、Union all 、Subquery 支持配置查询 支持 DbFirst 从数据库导入实体类,或使用生成工具。...您可以使用 Chloe.ORM 通过 lambda 查询 LINQ 之类数据并执行任何操作(查询 | 组查询 | 聚合查询 | 插入 | 批量更新 | 批量删除)。...开发人员使用Linq语言,对数据库操作如同操作object对象一样省事。 EF有三种使用场景: 1、从数据库生成Class。 2、由实体类生成数据库表结构。...开源地址:https://github.com/nhibernate/nhibernate-core 七、ServiceStack/ServiceStack.OrmLite(国外) 简单 .NET 快速...插入/删除/更新/保存和 IsNew 辅助方法 分页请求会自动计算出总记录数并获取特定页面。 简单交易支持。 更好参数替换支持,包括从对象属性中获取命名参数。

    4.1K42

    在 Java Spring 应用中使用 ASP.NET Core Identity 数据库进行用户认证

    在 Java Spring 应用中使用 ASP.NET Core Identity 数据库进行用户认证 使用 NHibernate 创建 Asp.Net Core 应用 ASP.NET Core Identity...NHibernate 是 .NET 平台上老牌对象关系映射 (ORM) 类库, 成熟度很高, 也实现了 ASP.NET Core Identity 认证支持。 ?...根据 NHibernate.AspNetCore.Identity 中说明, 创建一个示例项目, 需要注意问题主要有: 使用 NHibernate.AspNetCore.Identity 提供 sql...语句创建数据表, 而不是使用 NHibernate Schema Export 来建表, 这样可以更加准确控制数据库; 为了和 Java Spring 项目能够使用同样用户(即: 使用 ....接下来就是本文重点, 在 Spring 应用中使用 ASP.NET Identity 数据库用户。

    1.2K30

    .Net 高效开发之不可错过实用工具 工欲善其事,必先利其器,没有好工具,怎么能高效开发出高质量代码呢?本文为各ASP.NET 开发者介绍一些高效实用工具,涉及SQL 管理,VS插件,内

    本文为各ASP.NET 开发者介绍一些高效实用工具,涉及SQL 管理,VS插件,内存管理,诊断工具等,涉及开发过程各个环节,让开发效率翻倍。...AutoMapper: 自动生成对象到对象映射代码,比如,能够生成从实体对象映射到域对象,而不是手动编写映射代码。Object to object mapping....Internals Viewer for SQL Server: Internals Viewer 用来在SQL Server 存储引擎中查找工具,以及获取数据在物理层是如何分配,组织和存储。...NHibernate NHibernate Mapping Generator : 生成 NHibernate 映射文件,并从存在数据库表映射到领域类。 ​...如 在ASP.NET MVC 项目,可以通过NuGet添加。 性能 PerfMon: 使用 性能计数器监控系统性能。

    3.4K60
    领券