首页
学习
活动
专区
工具
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类似,对应NHibernate中的property,我这里只是简单的映射,还有很多特性,在今后的教程中会慢慢使用...Product我们映射好了,我们试着测试一下吧,这一次,我们用传统方式插入数据,用Fluent方式获取数据,测试代码如下: [TestMethod] public void NHibernateFactory...二、使用自定义类型映射实体属性 NHibernate支持我们用自定义的类型来映射属性,但因为我是初学,我真的不会,当然我在网上找到了相关的资料,在此也不多说,就说说Fluent的方式吧,在我映射自定义属性的时候...不错不错,测试一切正常,今天的代码就到这里。 总结 今天介绍了如何映射简单的实体,但很多时候这都是理想的数据设计,还有更多复杂,不可预计的数据设计,这时候我们Fluent能做到吗?

    1K90

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

    这个最后还是采用了cs的办法来获取的业务逻辑层的实体类,多少有点遗憾。     ...下面再回顾一下整个项目搭建的流程: 1、准备开发环境:Spring.Net 、Nhibernate 、Asp.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控件下载 项目:源代码下载

    23410

    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 --> id="DbProvider"...实体注入给业务逻辑层 到此为止,我们把Spring.Net和Nhibernate的配置基本就搞定了。

    1.1K20

    搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (五)测试你的成果

    本篇文章:主要介绍怎么使用这套框架。在做好配置等前期工作后。我们就是要与Mvc进行融合了。由于Mvc本人也是个初级入门者。对于这部分的研究还不是很深入。但是基本应用已经可以了。...UserService = webApplicationContext.GetObject("UserService") as IUserService;//从spring配置中获取...MVC visit asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc....项目展望: 我们可以将controls放到一个单独的项目中。然后可以设置一个工厂类来获取业务逻辑层的实体对象。 另外在ui层面我们可以采用extjs等ui框架,让页面更加绚丽。...相关下载 项目中用到的:spring.net Nhibernate控件下载 项目:源代码下载

    38420

    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是通过查找程序集中的资源文件映射实体。

    94040

    盘点 .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.2K42

    在 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.5K60
    领券