Abp.NHibernate連接PostgreSQl數(shù)據(jù)庫的方法
Abp.NHibernate動(dòng)態(tài)庫連接PostgreSQl數(shù)據(jù)庫,供大家參考,具體內(nèi)容如下
初次接觸Abp框架,其框架中封裝的操作各類數(shù)據(jù)的方法還是很好用的,本人還在進(jìn)一步的學(xué)習(xí)當(dāng)中,并將利用abp.NHibernate類庫操作PostgreSQL數(shù)據(jù)的相關(guān)方法做一記錄,不足之處讓評(píng)論指點(diǎn)扔磚。
話不多說,直接開干:
1、vs 新建一個(gè)項(xiàng)目,(窗體或者控制臺(tái)程序或者測試程序)
2、NuGet 獲取類庫(adp.NHibernate)
還需安裝一個(gè)pgSQl 對(duì)應(yīng)的驅(qū)動(dòng)
3、新建一個(gè)繼承AbpModule的類,用于配置數(shù)據(jù)庫連接信息和實(shí)體映射的相關(guān)信息
using System.Reflection; using Abp.Configuration.Startup; using Abp.Modules; using Abp.NHibernate; using FluentNHibernate.Cfg.Db; /** * 命名空間: abpPgtest * 功 能: 配置數(shù)據(jù)庫 * 類 名: NhHibernateModel * 作 者: 東騰 * 時(shí) 間: 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、新建實(shí)體和實(shí)體映射
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 * 功 能: 數(shù)據(jù)庫表實(shí)體及映射 * 類 名: testModel * 作 者: 東騰 * 時(shí) 間: 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();//數(shù)據(jù)庫表中沒有自增的Id時(shí)需要映射一個(gè)Id Map(x => x.Company); Map(x => x.Name); //References<userModel>(a => a.Id).Not.LazyLoad().Column("外鍵ID");//數(shù)據(jù)庫中有關(guān)聯(lián)表時(shí)使用 } } public class testModel:Entity<int> { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual string Company { get; set; } } }
5、數(shù)據(jù)庫中新建表 dt_tb_test
6、注冊(cè)并初始化abp連接
var bootstrapper = AbpBootstrapper.Create<NhHibernateModel>(); bootstrapper.Initialize(); var resp = bootstrapper.IocManager.Resolve<IRepository<testModel>>();
7、向數(shù)據(jù)庫中添加數(shù)據(jù)
//添加數(shù)據(jù) var model = new testModel { Name = "東騰", Company = "東騰科技" }; resp.Insert(model);
打開數(shù)據(jù)庫查看結(jié)果:
8、更新數(shù)據(jù)
//更新數(shù)據(jù) var m = resp.Get(1); m.Name = "東騰1"; resp.Update(m);
查看結(jié)果
9、查詢數(shù)據(jù)
查詢所有的數(shù)據(jù)
var allList = resp.GetAllList();
按照條件進(jìn)行查詢
10、刪除數(shù)據(jù)(可以根據(jù)多種方式進(jìn)行刪除,用id或者where條件進(jìn)行刪除)
//刪除數(shù)據(jù),更具where條件刪除 Expression<Func<testModel, bool>> where = a =>a.Id==3; resp.Delete(where);
id為3的一條數(shù)據(jù)被刪除
11、總結(jié):
abp.NHibernate只是ABP中對(duì)NHIbernate的一個(gè)封裝,只要正確注冊(cè)和訪問數(shù)據(jù)庫,其余的就是ORM操作數(shù)據(jù)庫,就簡單了。其他的關(guān)系型數(shù)據(jù)都用類似的做法即可。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
postgresql 實(shí)現(xiàn)更新序列的起始值
這篇文章主要介紹了postgresql 實(shí)現(xiàn)更新序列的起始值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12玩轉(zhuǎn)PostgreSQL之30個(gè)實(shí)用SQL語句
本文主要整理總結(jié)了30個(gè)實(shí)用SQL,方便大家可以高效利用PostgreSQL,需要的朋友可以參考下2022-11-11PostgreSQL 實(shí)現(xiàn)distinct關(guān)鍵字給單獨(dú)的幾列去重
這篇文章主要介紹了PostgreSQL 實(shí)現(xiàn)distinct關(guān)鍵字給單獨(dú)的幾列去重,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01聊聊PostgreSql table和磁盤文件的映射關(guān)系
這篇文章主要介紹了聊聊PostgreSql table和磁盤文件的映射關(guān)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01PostgreSQL判斷字符串是否包含目標(biāo)字符串的多種方法
這篇文章主要介紹了PostgreSQL判斷字符串是否包含目標(biāo)字符串的多種方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02PostgreSql新手必學(xué)入門命令小結(jié)
這篇文章主要介紹了PostgreSql新手必學(xué)入門命令小結(jié),本文講解了命令行登錄數(shù)據(jù)庫、查看幫助、常用命令等內(nèi)容,需要的朋友可以參考下2015-02-02解決postgreSql 將Varchar類型字段修改為Int類型報(bào)錯(cuò)的問題
這篇文章主要介紹了解決postgreSql 將Varchar類型字段修改為Int類型報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12PostgreSQL中enable、disable和validate外鍵約束的實(shí)例
這篇文章主要介紹了PostgreSQL中enable、disable和validate外鍵約束的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01