Abp.NHibernate连接PostgreSQl数据库

时间:2022-09-13 10:10:28

p{
text-align:center;
}
blockquote > p > span{
text-align:center;
font-size: 18px; color: #ff0000;
}

-->

Abp.NHibernate动态库连接PostgreSQl数据库


初次接触Abp框架,其框架中封装的操作各类数据的方法还是很好用的,本人还在进一步的学习当中,并将利用abp.NHibernate类库操作PostgreSQL数据的相关方法做一记录,不足之处让评论指点扔砖。

话不多说,直接开干:

1、vs 新建一个项目,(窗体或者控制台程序或者测试程序)

2、NuGet 获取类库(adp.NHibernate)

Abp.NHibernate连接PostgreSQl数据库

还需安装一个pgSQl 对应的驱动

Abp.NHibernate连接PostgreSQl数据库

3、新建一个继承AbpModule的类,用于配置数据库连接信息和实体映射的相关信息

using System.Reflection;
using Abp.Configuration.Startup;
using Abp.Modules;
using Abp.NHibernate;
using FluentNHibernate.Cfg.Db; /**
* 命名空间: abpPgtest
* 功 能: 配置数据库
* 类 名: NhHibernateModel
* 作 者: 东腾
* 时 间: 2018/1/29 17:04:27
*/
namespace abpPgtest
{
[DependsOn(typeof(AbpNHibernateModule))]
public class NhHibernateModel:AbpModule
{
//重写PreInitialize方法
public override void PreInitialize()
{
var pgStr = "Server=localhost;Port=5432;Database=DTDB;User Id=DT;Password=DT"; var config = Configuration.Modules.AbpNHibernate().FluentConfiguration
.Database(PostgreSQLConfiguration.Standard.ConnectionString(pgStr));
config.Mappings(a => a.FluentMappings.AddFromAssembly(Assembly.GetEntryAssembly()));
//base.PreInitialize();
}
//重写Initialize方法
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(Assembly.GetCallingAssembly());
// base.Initialize();
}
}
}

4、新建实体和实体映射

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Abp.Domain.Entities;
using Abp.NHibernate.EntityMappings; /**
* 命名空间: abpPgtest.testModel
* 功 能: 数据库表实体及映射
* 类 名: testModel
* 作 者: 东腾
* 时 间: 2018/1/29 17:21:19
*/
namespace abpPgtest.testModel
{
public class testModelMap : EntityMap<testModel>
{
public testModelMap():base("dt_tb_test")
{
//Id(x => x.Id).GeneratedBy.Increment();//数据库表中没有自增的Id时需要映射一个Id
Map(x => x.Company);
Map(x => x.Name); //References<userModel>(a => a.Id).Not.LazyLoad().Column("外键ID");//数据库中有关联表时使用 }
}
public class testModel:Entity<int>
{
public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual string Company { get; set; }
}
}

5、数据库中新建表 dt_tb_test

Abp.NHibernate连接PostgreSQl数据库

6、注册并初始化abp连接

var bootstrapper = AbpBootstrapper.Create<NhHibernateModel>();
bootstrapper.Initialize();
var resp = bootstrapper.IocManager.Resolve<IRepository<testModel>>();

7、向数据库中添加数据

 //添加数据
var model = new testModel
{
Name = "东腾",
Company = "东腾科技"
};
resp.Insert(model);

打开数据库查看结果:

Abp.NHibernate连接PostgreSQl数据库

 8、更新数据

 //更新数据
var m = resp.Get();
m.Name = "东腾1";
resp.Update(m);

查看结果

Abp.NHibernate连接PostgreSQl数据库

9、查询数据

查询所有的数据

var allList = resp.GetAllList();

Abp.NHibernate连接PostgreSQl数据库

按照条件进行查询

Abp.NHibernate连接PostgreSQl数据库

10、删除数据(可以根据多种方式进行删除,用id或者where条件进行删除)

           //删除数据,更具where条件删除
Expression<Func<testModel, bool>> where = a =>a.Id==;
resp.Delete(where);

id为3的一条数据被删除

Abp.NHibernate连接PostgreSQl数据库

11、总结:abp.NHibernate只是ABP中对NHIbernate的一个封装,只要正确注册和访问数据库,其余的就是ORM操作数据库,就简单了。其他的关系型数据都用类似的做法即可。

Abp.NHibernate连接PostgreSQl数据库的更多相关文章

  1. ASP&period;NET MVC 使用 Petapoco 微型ORM框架&plus;NpgSql驱动连接 PostgreSQL数据库

    前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...

  2. nhibernate连接11g数据库

    我框架的数据映射用 nhibernate连接多数据库,这次又增加了oracle11g,负责开发的同事始终连接不上,悲催的sharepoint调试是在不方便... 下面描述下问题的解决,细节问题有3个: ...

  3. 视频教程--ASP&period;NET MVC 使用 Petapoco 微型ORM框架&plus;NpgSql驱动连接 PostgreSQL数据库

    说好的给园子里的朋友们录制与<ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库> 这篇博客相对应的视频,由于一个月一来没有时 ...

  4. Entity Freamwork 6连接PostgreSql数据库

    原文 Entity Freamwork 6连接PostgreSql数据库 开发环境 VS 2015  Update 1   Postgre Sql 9.4 使用过程 1.使用Nuget在项目中添加对E ...

  5. typescript-koa-postgresql 实现一个简单的rest风格服务器 —— 连接 postgresql 数据库

    接上一篇,这里使用 sequelize 来连接 postgresql 数据库 1.安装 sequelize,数据库驱动 pg yarn add sequelize sequelize-typescri ...

  6. msf连接PostgreSQL数据库

    一.启动PostgreSQL服务######################################################################?root@root:~# ...

  7. powerdesigner连接postgresql数据库生成pdm及word文档

    1.准备软件: powerdesigner165与postgresql的驱动:psqlodbc_11_01_0000 2.安装并破解完成powerdesigner165 参看链接:https://ww ...

  8. 建立安全SSL连接PostgreSQL数据库服务器

    建立安全SSL连接PostgreSQL数据库服务器当前物联网的挑战之一就是提供最高的安全级别.这就是为什么需要开启SSL连接到 PostgreSQL. 当你想要安全的存储数据到PostgreSQL数据 ...

  9. python连接postgresql数据库

    python可以通过第三方模块连接postgresql. 比较有名的有psycopg2  和python3-postgresql (一)psycopg2 ubuntu下安装 sudo apt-get ...

随机推荐

  1. Ajax语法浅析

    Ajax是目前很普遍的一门技术,也是很值得探讨和研究的一门技术.本文将针对Ajax的发展过程并结合其在不同库框架中的使用方式来和大家分享下Ajax的那些新老语法. Ajax简介 Ajax全称为“Asy ...

  2. &lt&semi;&lt&semi;&lt&semi; php程序在运行后报&OpenCurlyDoubleQuote;internal server error”错误

    上传的php程序在运行后报“internal server error”错误,检查以下两方面: 1.请您检查php程序的属性是否设置为755,如果php程序的属性不是755,那么运行的时候会报“int ...

  3. &lbrack;LeetCode&rsqb; 8&period; String to Integer &lpar;atoi&rpar;

    Implement atoi to convert a string to an integer. public class Solution { public int myAtoi(String s ...

  4. 欧拉函数 &amp&semi;【POJ 2478】欧拉筛法

    通式: $\phi(x)=x(1-\frac{1}{p_1})(1-\frac{1}{p_2})(1-\frac{1}{p_3}) \cdots (1-\frac{1}{p_n})$ 若n是质数p的k ...

  5. 解决微信浏览器无法使用window&period;location&period;reload&lpar;&rpar;刷新页面

    解决方法: 使用    window.location.href=window.location.href+随机数    代替 window.location.reload(). function r ...

  6. 一个xib钟多个Cell

    在实际开发中,有时候需要在一个xib钟拖几个cell,注意连线过程的object选择,不然出现没反应的现象. 例如: 在下图中,我在一个xib钟创建了五个cell,他们分别是:收货地址.订单信息.支付 ...

  7. 多线程锁--怎么理解Condition

    在java.util.concurrent包中,有两个很特殊的工具类,Condition和ReentrantLock,使用过的人都知道,ReentrantLock(重入锁)是jdk的concurren ...

  8. Asp&period;net 处理程序&lpar;第五篇&rpar;

    HttpApplication有19个标准事件,当到达第8个事件PostMapRequestHandler触发的时候,标志着已经获取到了处理请求的处理程序对象,在第11个事件PreRequestHan ...

  9. C&plus;&plus;程序代写实现HashSet class

    C++程序代写实现HashSet class 专业程序代写(QQ:928900200) Implement a HashSet class for elements of type string.It ...

  10. Linux之VI搜索相关命令

    /abc, 向前查询abc ?abc, 向后查询abc n, 向前继续查询 N, 向后继续查询 老是忘记,简单记录下