Ef Core花里胡哨系列(6) XML注释同步到数据库注释
2024-01-02 18:36:48
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; }
}
文章来源:https://blog.csdn.net/cc1998414/article/details/135345625
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!