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

做3d模型的叫什么牛的网站武汉关键词包年推广

做3d模型的叫什么牛的网站,武汉关键词包年推广,食品公司建设网站目的,做网站编辑有什么发展文章目录 EF更新和插入时如何忽略更新导航属性级联删除删除主体/父实体断开关系配置级联行为 来源 EF更新和插入时如何忽略更新导航属性 使用Ignore方法&#xff1a; modelBuilder.Entity<Blog>().Ignore(b > b.Posts);使用HasNoKey方法&#xff1a; modelBuilder.…

文章目录

  • EF更新和插入时如何忽略更新导航属性
  • 级联删除
    • 删除主体/父实体
    • 断开关系
    • 配置级联行为
  • 来源

EF更新和插入时如何忽略更新导航属性

  1. 使用Ignore方法:
modelBuilder.Entity<Blog>().Ignore(b => b.Posts);
  1. 使用HasNoKey方法:
modelBuilder.Entity<Blog>().HasNoKey();
  1. 使用HasNoNavigation方法:
modelBuilder.Entity<Blog>().HasNoNavigation(b => b.Posts);
  1. 使用HasNoRelationship方法:
modelBuilder.Entity<Blog>().HasNoRelationship(b => b.Posts);

级联删除

删除主体/父实体

请考虑此简单模型,其中 Blog 是与 Post(依赖实体/子实体)的关系中的主体/父实体。 Post.BlogId 是一个外键属性,其值必须与该文章所属博客中的 Blog.Id 主键匹配。

public class Blog
{public int Id { get; set; }public string Name { get; set; }public IList<Post> Posts { get; } = new List<Post>();
}public class Post
{public int Id { get; set; }public string Title { get; set; }public string Content { get; set; }public int BlogId { get; set; }public Blog Blog { get; set; }
}

按照约定,由于 Post.BlogId 外键属性是不可为 null 的,因此该关系被配置为必需的。 默认情况下,所需的关系配置为使用级联删除。 要详细了解建模关系,请参阅关系。

删除博客时,所有文章都将被级联删除。 例如:

using var context = new BlogsContext();var blog = context.Blogs.OrderBy(e => e.Name).Include(e => e.Posts).First();context.Remove(blog);context.SaveChanges();

SaveChanges 以 SQL Server 为例,生成以下 SQL:

-- Executed DbCommand (1ms) [Parameters=[@p0='1'], CommandType='Text', CommandTimeout='30']
SET NOCOUNT ON;
DELETE FROM [Posts]
WHERE [Id] = @p0;
SELECT @@ROWCOUNT;-- Executed DbCommand (0ms) [Parameters=[@p0='2'], CommandType='Text', CommandTimeout='30']
SET NOCOUNT ON;
DELETE FROM [Posts]
WHERE [Id] = @p0;
SELECT @@ROWCOUNT;-- Executed DbCommand (2ms) [Parameters=[@p1='1'], CommandType='Text', CommandTimeout='30']
SET NOCOUNT ON;
DELETE FROM [Blogs]
WHERE [Id] = @p1;
SELECT @@ROWCOUNT;

断开关系

我们不会删除博客,而是断开每篇文章与其博客之间的关系。 为此,可将每篇文章的引用导航 Post.Blog 设置为 null:

using var context = new BlogsContext();var blog = context.Blogs.OrderBy(e => e.Name).Include(e => e.Posts).First();foreach (var post in blog.Posts)
{post.Blog = null;
}context.SaveChanges();

还可通过从 Blog.Posts 集合导航中删除每篇文章内容来断开关系:

using var context = new BlogsContext();var blog = context.Blogs.OrderBy(e => e.Name).Include(e => e.Posts).First();blog.Posts.Clear();context.SaveChanges();

无论哪种情况,结果都一样:没有删除博客,但是删除了不再与任何博客关联的文章:

-- Executed DbCommand (1ms) [Parameters=[@p0='1'], CommandType='Text', CommandTimeout='30']
SET NOCOUNT ON;
DELETE FROM [Posts]
WHERE [Id] = @p0;
SELECT @@ROWCOUNT;-- Executed DbCommand (0ms) [Parameters=[@p0='2'], CommandType='Text', CommandTimeout='30']
SET NOCOUNT ON;
DELETE FROM [Posts]
WHERE [Id] = @p0;
SELECT @@ROWCOUNT;

删除不再与任何主体/依赖实体关联的实体这一行为被称作“删除孤立项”。

级联删除和删除孤立项是密切相关的。 当断开与所需的主体/父实体之间的关系时,两者都将导致删除依赖实体/子实体。 对于级联删除,由于主体/父实体本身已删除,因此发生了这种断开。 对于孤立项,主体/父实体仍然存在,但不再与依赖实体/子实体相关。

配置级联行为

使用 OnModelCreating 中的 OnDelete 方法按关系配置级联行为。 例如:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{modelBuilder.Entity<Blog>().HasOne(e => e.Owner).WithOne(e => e.OwnedBlog).OnDelete(DeleteBehavior.ClientCascade);
}

OnDelete 从公认地令人混淆的 DeleteBehavior 枚举中接受一个值。 该枚举既定义了 EF Core 在跟踪实体上的行为,又定义了使用 EF 创建架构时数据库中级联删除的配置。

来源

EF更新和插入时如何忽略更新导航属性
级联删除

http://www.mnyf.cn/news/14748.html

相关文章:

  • 做购物网站能赚钱吗发广告去哪个平台
  • 镇江高端网站建设工作室以营销推广为主题的方案
  • 微信公众号上微做网站好的推广平台
  • 网站开发公司地址外贸网站seo教程
  • 常州建设局官方网站长沙百度推广排名优化
  • 网站seo关键字优化互联网推广项目
  • 高校网站建设需求单成都网站制作费用
  • wordpress去掉导航栏seo营销
  • 做www网站需要多少钱网站发布与推广
  • 精神文明建设网站微信做单30元一单
  • 深圳建企业网站公司成免费的crm
  • 克拉玛依住房和建设局网站市场调研方法有哪几种
  • 沧州商城网站建设写软文用什么软件
  • 青岛seo网站建设网站如何才能被百度收录
  • 本地网站服务器搭建太原seo推广
  • 佛山网站建设电话seo网络推广培训
  • 做网站项目的心得微信公众号营销
  • wap网站搭建网络营销渠道有哪三类
  • 中山网站建设找阿江百度推广代运营
  • 网站设计与应用方向论文sem竞价
  • 石家庄高端网站建设seo技巧是什么意思
  • 装饰公司网站建设优化推广网站淄博
  • 成都如何做网站上海高端网站定制
  • 公司网站建设整体架构常用的网络营销方法
  • 有哪些学做衣服的网站有哪些汕头seo排名公司
  • 公司网站制作效果怎么样全国十大跨境电商排名
  • 网站索引量怎么增加百度问答入口
  • 西安 内部网站建设如何seo搜索引擎优化
  • 宁夏网站建设哪个好网站建设是什么
  • 网站底部备案号悬挂佛山今日头条