C# 使用EntityFramework CodeFirst 创建PostgreSQL数据库的详细过程

 更新时间:2023年07月28日 14:55:11   作者:othersheart  
这篇文章主要介绍了C#使用EntityFramework CodeFirst创建PostgreSQL数据库的过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

C# 使用EntityFramework CodeFirst 创建PostgreSQL数据库

1.先创建一个ASP.Net Web应用程序,选择Web API

2、创建EntityLib、EF、AppService三个类库。EntityLib用于存放数据库表所对应的实体,AppService用于编写用户对实体的一些操作方法,如增删改查等操作。

创建好所有类库之后,需要添加引用库EntityFramework6.Npgsql,右击项目中的引用———》管理NuGet程序包———》搜索EntityFramework6.Npgsql添加到项目中,这个库会自动添加EntityFramework6和Npgsql的引用。需要给EF、AppService和API都添加这个引用。添加完成之后就开始写各个类库相应的代码了。

EFContext类

public class EFContext : DbContext
    {
        public EFContext() : base("Postgresql")//连接字符串名称
        {
        }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.HasDefaultSchema("public");//EF默认创建到dbo架构中,而PostgreSQL默认为public架构
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
            base.OnModelCreating(modelBuilder);
        }
        public DbSet<User> Users { get; set; }
    }

User类

[Table("User",Schema ="public")]
    public class User
    {
        [Key]
        [Required]
        [Column("ID")]
        public int ID { get; set; }
        public string Name { get; set; }
        public string Account { get; set; }
        public string Password { get; set; }
    }

AppService类

public class UserService
    {
        public void AddUser(User user)
        {
            try
            {
                using (var db = new EFContext())
                {
                    db.Users.Add(user);
                    db.SaveChanges();
                }
            }
            catch (Exception e)
            {
                string msg = e.Message;
            }
        }
        public void DeleteUserByID(int id)
        {
            try
            {
                using (var db = new EFContext())
                {
                    db.Users.Remove(db.Users.Find(id));
                    db.SaveChanges();
                }
            }
            catch (Exception e)
            {
                string msg = e.Message;
            }
        }
        public void EditUser(User user)
        {
            try
            {
                using (var db = new EFContext())
                {
                    User u = db.Users.Find(user.ID);
                    u.Name = user.Name;
                    u.Account = user.Account;
                    u.Password = user.Password;
                    db.SaveChanges();
                }
            }
            catch (Exception e)
            {
                string msg = e.Message;
            }
        }
        public User FindUserByID(int id)
        {
            try
            {
                using (var db = new EFContext())
                {
                    User user = db.Users.Find(id);
                    return user;
                }
            }
            catch (Exception e)
            {
                string msg = e.Message;
                return null;
            }
        }
        public List<User> FindAll()
        {
            try
            {
                using (var db = new EFContext())
                {
                    List<User> users = db.Users.ToList();
                    return users;
                }
            }
            catch (Exception e)
            {
                string msg = e.Message;
                return null;
            }
        }
    }

完成类的编写之后,需要添加数据库连接字符串,打开API的web.config文件添加:

<connectionStrings>
        <add name="Postgresql" connectionString="PORT=502;DATABASE=postgres;HOST=10.60.140.1;PASSWORD=007;USER ID=postgres" providerName="Npgsql" />
    </connectionStrings>

3.进行数据迁移,通过命令将实体类导入数据库生成相应的数据库表。先打开VS的工具,然后点击NuGet包管理器 ,选择程序包管理器控制台,默认项目改为EF,输入以下三行命令

1-》enable-migrations

2-》add-migration

3-》update-database

去PostgreSQL数据库去查看发现已经生成好了数据库和对应的表了,这里因为我postgres数据库已经有User表了,所以修改了一下数据库连接字符串

到此这篇关于C# 使用EntityFramework CodeFirst 创建PostgreSQL数据库的文章就介绍到这了,更多相关C# 创建PostgreSQL数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#中使用IFormattable实现自定义格式化字符串输出示例

    C#中使用IFormattable实现自定义格式化字符串输出示例

    这篇文章主要介绍了C#中使用IFormattable实现自定义格式字符串输出示例,本文直接给出实例代码,需要的朋友可以参考下
    2015-06-06
  • C#事件管理器如何清空所有监听详解

    C#事件管理器如何清空所有监听详解

    这篇文章主要给大家介绍了关于C#事件管理器如何清空所有监听的相关资料,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-07-07
  • 三十分钟快速掌握C# 6.0知识点

    三十分钟快速掌握C# 6.0知识点

    这篇文章主要介绍了C# 6.0的相关知识点,文中介绍的非常详细,通过这篇文字可以让大家在三十分钟内快速的掌握C# 6.0,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-03-03
  • C#获取日期的星期名称实例代码

    C#获取日期的星期名称实例代码

    本文通过实例代码给大家介绍了基于c#获取日期的星期名称,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-08-08
  • C#实现简单的3DES加密解密功能示例

    C#实现简单的3DES加密解密功能示例

    这篇文章主要介绍了C#实现简单的3DES加密解密功能,结合实例形式分析了C#实现3DES加密解密的定义、使用等具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • C#通过JObject解析json对象

    C#通过JObject解析json对象

    这篇文章介绍了C#通过JObject解析json对象的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • C#生成图形验证码的实现方式

    C#生成图形验证码的实现方式

    我们当用户登录系统时经常会用到图形验证码技术,要求用户识别图片中的内容,并正确输入,方可尝试登录,因此,图形验证码是一个网络安全技术手段,图形验证码的呈现形式有很多种,这里我们将介绍最基本的生成方式,感兴趣的朋友可以参考下
    2024-04-04
  • C#图像灰度级拉伸的方法

    C#图像灰度级拉伸的方法

    这篇文章主要介绍了C#图像灰度级拉伸的方法,涉及C#灰度操作的相关技巧,需要的朋友可以参考下
    2015-04-04
  • C# XML与Json之间相互转换实例详解

    C# XML与Json之间相互转换实例详解

    这篇文章主要介绍了C# XML与Json之间相互转换实例详解,大家参考使用吧
    2013-11-11
  • C# Winform多屏幕多显示器编程技巧实例

    C# Winform多屏幕多显示器编程技巧实例

    这篇文章主要介绍了C# Winform多屏幕多显示器编程技巧实例,本文直接给出代码实例,需要的朋友可以参考下
    2015-06-06

最新评论