码迷,mamicode.com
首页 > Windows程序 > 详细

【EF Core】EF core中使用FluentAPI对外键进行指定配置

时间:2020-06-29 20:15:13      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:for   uil   audit   ati   图片   tab   api   node   nan   

有两个实体,关系如下:

public class CatalogNodeEntity : FullAuditedEntity<Guid>, IMultiTenant
    {
public virtual string Name { get; protected set; } public virtual string DisplayName { get; protected set; } private List<CatalogLayerEntity> Layers = new List<CatalogLayerEntity>(); }
public class CatalogLayerEntity:FullAuditedEntity<Guid>, IMultiTenant
    {

        public virtual string Name { get; protected set; }

        public virtual Guid? CatalogNodeId { get; set; }
        
        public virtual CatalogNodeEntity CatalogNode { get; set; }

     }

配置one to many 的实体关系,可这样配置

builder.Entity<CatalogNodeEntity>(m =>
            {
                m.ToTable(options.TablePrefix + "CatalogNode", options.Schema);
                m.ConfigureByConvention();
                m.Property(o => o.Name).IsRequired().HasMaxLength(CatalogConsts.MaxNameLength);
                m.HasMany(u => u.Layers).WithOne(u=>u.CatalogNode).HasForeignKey(u=>u.CatalogNodeId).OnDelete(DeleteBehavior.Cascade);
            });

这里有个坑需要注意,如果在WithOne的函数中没有指定实体,又在HasForeignKey中指定了外键,这是进行Migration就会出现两个外键

m.HasMany(u => u.Layers).WithOne().HasForeignKey(u=>u.CatalogNodeId).OnDelete(DeleteBehavior.Cascade);

技术图片

 

【EF Core】EF core中使用FluentAPI对外键进行指定配置

标签:for   uil   audit   ati   图片   tab   api   node   nan   

原文地址:https://www.cnblogs.com/c-supreme/p/13209854.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!