开源NetCore
当前位置: NetCore > EfCore基础知识

EfCore基础知识

2019-12-09 分类:NetCore 作者:zhanghao 阅读(490)

EfCore基础知识

表映射

实体映射到DbSet属性的名称默认使用类名称。一般情况下可以用类名称映射就可以了,但是如数据库表带有前缀,实体类不想用前缀的情况下怎么处理呢?一般分为两种处理方式。

数据注释方式

using System.ComponentModel.DataAnnotations.Schema;

[Table("blogs")]
public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }
}

数据注释就是在类名称上使用Table("映射表名称")方式来实现

数据实体对象的集合中重写OnModelCreating方法

using Microsoft.EntityFrameworkCore;

class MyContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Blog>()
            .ToTable("blogs");
    }
}

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }
}

这种方法就是通过重写OnModelCreating方法,使用.ToTable('映射表名称')实现

列映射

列的映射也和表的映射一样,通过 [Column("映射列名称")]和重写OnModelCreating()方法.HasColumnName("映射列名称");例如


1
2
3
4
5
6
7
8
9
    [Column("blog_id")]
    public int BlogId { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
            modelBuilder.Entity&lt;Blog&gt;()
                .Property(b =&gt; b.BlogId)
                .HasColumnName("blog_id");
    }

「开源NetCore,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏

谢谢支持!

支付宝
微信
0

谢谢支持!

支付宝
微信
标签:

上一篇:

下一篇:

你可能感兴趣

共有 0 条评论 - EfCore基础知识

博客简介

开源NetCore博客: netcore.pub,一个关注NetCore开发技术、Web前端开发技术、关注用户体验、坚持更多原创实战教程的个人网站。

站点统计

  • 文章总数: 15 篇
  • 草稿数目: 2 篇
  • 分类数目: 15 个
  • 独立页面: 3 个
  • 评论总数: 1 条
  • 链接总数: 2 个
  • 标签总数: 13 个
  • 建站时间: 223 天
  • 注册用户: 1 人
  • 最近更新: 2019年12月27日