• EF CodeFirst EntityTypeConfiguration 自关联映射配置


    实体示例代码:

        public class Message
        {
            public Message()
            {
            }
    
            public int ID { get; private set; }
            public string Title { get; private set; }
            public Message ParentMessage { get; private set; }
        }
    

    想要的效果是,使用 EF 映射配置,在数据库生成的 Message 表字段为:ID、Title、ParentID。

    需要注意的是,在实体属性中并没有 ParentID,映射配置代码:

                HasOptional(x => x.ParentMessage)
                    .WithMany()
                    .Map(x => x.MapKey("ParentID"))//自定义映射外键字段名称
                    //.HasForeignKey(c => c.ParentID)//如果已有 ParentID,可以直接指定
                    .WillCascadeOnDelete(false);//不级联删除
    

    HasOptional 映射配置 ParentID 为 null,如果想配置为 not null,可使用 HasRequired。

  • 相关阅读:
    SCOI2012 奇怪的游戏
    AHOI2013 差异
    HAOI2018 染色
    HNOI2015 开店
    PKUWC2018 随机游走
    HAOI2015 按位或
    Luogu4859 二项式反演
    CTSC2018 混合果汁
    yii2.0邮件发送问题解决
    yii2.0 elasticsearch模糊查询
  • 原文地址:https://www.cnblogs.com/xishuai/p/4015080.html
Copyright © 2020-2023  润新知