.net core使用数据库
.net core使用数据库
.net core 通过可以通过ef core或其它ORM框架进行数据访问。此处使用EF和Dapper作为示例。
使用EF Core访问数据库
与 .NET Framework访问数据库一直,我们可以使用Code-First进行开发,也可以使用DB-First进行开发。我们不关心是现有数据库还是现有代码,我们关心如何进行访问。
首先创建数据模型Model:
[Table("tbl_user")] public class UserEntity { [Column("id")] public int Id { get; set; } [Column("code")] public string Code { get; set; } [Column("name")] public string Name { get; set; } [Column("status")] public UserStatus Status { get; set; } } public enum UserStatus { Enable = 1, Disable = 2, }
然后创建我们的DBContext:
public class DemoDBContext : DbContext { public DbSet<UserEntity> Users { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseNpgsql("server=127.0.0.1;userid=postgres;password=123;database=demo;Pooling=false;Enlist=true"); base.OnConfiguring(optionsBuilder); } }
使用postgresql数据库。
在程序中,我们使用new关键字创建DbContext对象:
var dbContext = new DemoDBContext(); var user = new UserEntity() { Code = "01", Name = "Tom", Status = UserStatus.Enable }; dbContext.Add(user); dbContext.SaveChanges(); Console.WriteLine("User = " + JsonConvert.SerializeObject(user, Formatting.Indented));
此处演示了正常插入数据库的操作。
使用Dapper访问数据
Dapper是一个轻量级的ORM框架,性能也很好,唯一的缺点是需要写大量的SQL脚本。我们来看一下如何使用Dapper进行数据访问的。
/// <summary> /// 使用Dapper访问数据库 /// </summary> public static void UseDapperAccessDatabase() { using (IDbConnection db = OpenConnection("server=127.0.0.1;userid=postgres;password=123;database=demo;Pooling=false;Enlist=true")) { var jerry = new UserEntity() { Code = "02", Name = "Jerry", Status = UserStatus.Enable, }; jerry.Id = (int)db.Insert(jerry); var user = db.Get<UserEntity>(1); Console.WriteLine($"User = {JsonConvert.SerializeObject(user)}"); user = db.QuerySingleOrDefault("select * from tbl_user where id=@id", new { id = 2 }); Console.WriteLine($"User = {JsonConvert.SerializeObject(user)}"); } } /// <summary> /// get the db connection /// </summary> /// <param name="connectionString"></param> /// <returns></returns> public static IDbConnection OpenConnection(string connectionString) { var conn = new NpgsqlConnection(connectionString); conn.Open(); return conn; }
Dapper不支持数据库列的映射,也就是说,如果数据库列名和Model的列名不一致时,好像没有办法进行处理。
以上代码仅供演示。
本文作者:拓荒者IT
本文链接:https://www.cnblogs.com/youring2/p/9442611.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
📌做了个微信公众号【拓荒者IT】,分享各种技术干货,新内容首发到公众号,欢迎关注❤️
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2012-08-08 如何调试Javascript代码