Ef Core花里胡哨系列(6) XML注释同步到数据库注释

13 篇文章 0 订阅
11 篇文章 0 订阅

Ef Core花里胡哨系列(6) XML注释同步到数据库注释

参考文档:C#读取注释的方法

准备读取Xml的工具类

可以根据[参考文档]获取一个简单读取注释的方法。

实现DbContext

我们通过重写OnModelCreating方法,在生成数据库表时,使用FluentApi指定对应表以及其属性的Comment即可将Xml注释转为数据库的Comment

public class SampleDbContext : DbContext
{
    public SampleDbContext(DbContextOptions<SampleDbContext> options) : base(options) { }

    public DbSet<User> Users { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        var xmlCommentHelper = new XmlCommentHelper();
        xmlCommentHelper.LoadAll();

        foreach (var entityType in modelBuilder.Model.GetEntityTypes())
        {
            var typeComment = xmlCommentHelper.GetTypeComment(entityType.ClrType);
            modelBuilder.Entity(entityType.ClrType).ToTable(t => t.HasComment(typeComment));
            foreach (var property in entityType.ClrType.GetProperties().Where(x => x.IsPubliclyWritable()))
            {
                var propertyComment = xmlCommentHelper.GetFieldOrPropertyComment(property);
                modelBuilder.Entity(entityType.ClrType).Property(property.Name).HasComment(propertyComment);
            }
        }

        base.OnModelCreating(modelBuilder);
    }
}

/// <summary>
/// 用户表
/// </summary>
public class User
{
    /// <summary>
    /// Id
    /// </summary>
    public Guid Id { get; set; }
    /// <summary>
    /// 姓名
    /// </summary>
    public required string Name { get; set; }
    /// <summary>
    /// 邮箱
    /// </summary>
    public required string Email { get; set; }
}
  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖纸不争

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值