当前位置: 首页 > news >正文

广州网站建设集团长尾词挖掘工具爱站网

广州网站建设集团,长尾词挖掘工具爱站网,网页设计网站思路,济南做网站的价格目录 双向导航 单向导航 迁移数据库异常 解决办法 1.导航属性改为空 2.使用 ON DELETE NO ACTION 或 ON UPDATE NO ACTION 选择 双向导航 一对多:一个Article有多个Comment class Article {public long Id { get; set; }public string Title { get; set; }pu…

目录

双向导航

单向导航

 迁移数据库异常

解决办法

1.导航属性改为空

2.使用 `ON DELETE NO ACTION` 或 `ON UPDATE NO ACTION`

选择


双向导航

一对多:一个Article有多个Comment

class Article
{public long Id { get; set; }public string Title { get; set; }public string Content { get; set; }public List<Comment> Comments { get; set; } = new List<Comment>();
}class Comment
{public long Id { get; set; }public string Message { get; set; }public Article Article { get; set; }
}

系统里的一些基础表,经常被非常多的表引用,例如下图,User被5个表引用,双向导航的话,User要添加5个属性,而单向引用的话就不需要在User表进行操作,只需在请假表中找到User即可。

单向导航

与双向导航配置类似,在配置的时候WithMany()不设置参数即可。

class User
{public int Id { get; set; }public string Name { get; set; }
}class Leave
{public long Id { get; set; }public User Requester { get; set; }public User Approver { get; set; }public string Remarks { get; set; }
}class LeaveConfig : IEntityTypeConfiguration<Leave>
{public void Configure(EntityTypeBuilder<Leave> builder){builder.ToTable("T_Leave");builder.HasOne<User>(a => a.Requester).WithMany().IsRequired();builder.HasOne<User>(a => a.Approver).WithMany();}
}class UserConfig : IEntityTypeConfiguration<User>
{public void Configure(EntityTypeBuilder<User> builder){builder.ToTable("T_User");}
}

 迁移数据库异常

随后进行数据库迁移,在.net5中能够正常迁移,但是.net6会报异常

Microsoft.Data.SqlClient.SqlException (0x80131904): 将 FOREIGN KEY 约束 'FK_T_Leave_T_User_RequesterId' 引入表 'T_Leave' 可能会导致循环或多重级联路径。请指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。

在Leave类中,由于有两个User属性,系统提示可能会导致循环或多重级联路径。

解决办法
1.导航属性改为空

关系导航 - EF Core | Microsoft Learn

导航有两种形式:引用和集合。 引用导航是对另一个实体的简单对象引用。 它们表示一对多和一对一关系中的“一”方。使用 C# 可为空引用类型时,对于可选关系,引用导航必须为空

class Leave
{public long Id { get; set; }public User? Requester { get; set; }public User? Approver { get; set; }public string Remarks { get; set; }
}
2.使用 `ON DELETE NO ACTION` 或 `ON UPDATE NO ACTION`

可以指定在删除或更新操作时不执行任何动作。这样可以避免级联操作导致的循环问题。

实体出现两个或以上user属性从第二个开始的属性配置加上 .OnDelete(DeleteBehavior.NoAction)

class LeaveConfig : IEntityTypeConfiguration<Leave>
{public void Configure(EntityTypeBuilder<Leave> builder){builder.ToTable("T_Leave");builder.HasOne<User>(a => a.Requester).WithMany().IsRequired();builder.HasOne<User>(a => a.Approver).WithMany().OnDelete(DeleteBehavior.NoAction);}
}

选择

对于主从结构的“一对多”表关系,一般是声明双向导航属性。

而对于其他的“一对多”表关系:如果表属于被很多表引用的基础表,则用单项导航属性,否则可以自由决定是否用双向导航属性。
 

http://www.yidumall.com/news/45592.html

相关文章:

  • 网站建设工作描述西安网站建设制作公司
  • 企业做网站etp和源程序大一html网页制作作业简单
  • 竞价网站同时做优化可以吗如何做好互联网营销推广
  • 兰州网站建设专家广州seo网站推广优化
  • wordpress 页面管理seo标题生成器
  • 做餐厅网站的需求分析报告网络营销推广方案策划书
  • 成都网站建设外贸网络营销案例
  • 一家只做外卖的网站网络推广员一个月多少钱
  • 网站系统操作手册郑州关键词seo
  • 做网站用到的工具百度网址入口
  • 大庆建设中等职业技术学校网站如何在各大网站发布信息
  • 网站备案必须要幕布吗个人网站免费制作平台
  • 公安网站备案号查询西安网站建设公司电话
  • 能做视频的软件有哪些外链seo
  • 2016年两学一做教育网站常用的五种网络营销工具
  • 品牌微信网站开发注册百度推广账号
  • 兼职做问卷调查的网站怎么样做推广
  • 网站建设及优化方案自己建网站流程
  • 昆明网站推广淘宝seo优化
  • 做游戏的php网站有哪些电商培训机构哪家好
  • 做彩票交流网站犯法吗经典品牌推广文案
  • 方城网站设计爱站网注册人查询
  • 做电器的集团网站石家庄热搜
  • 海伦网站建设做小程序要多少钱
  • 网站建站发布平台seo品牌优化
  • 公司没网站怎么做dsp免费seo公司
  • 邢台地区网站建设独立做博客的seo技巧
  • 全网推广平台哪家好长春seo排名公司
  • 建设政府网站的作用seo工资服务
  • 中山企业网站多少钱株洲专业seo优化