gpt4 book ai didi

entity-framework-core - 如何找到导航属性的外键字段?

转载 作者:行者123 更新时间:2023-12-04 04:16:05 31 4
gpt4 key购买 nike

对于给定的实体,我可以通过调用获取它的所有引用

var references = dbContext.Entry(entity).References;

现在我想将所有引用设置为空。

foreach (var reference in references)
{
reference.CurrentValue = null;
}
context.Update(entity);
context.SaveChanges();

但显然将引用设置为 null 是不够的,还必须设置外键属性。但是如何找到给定引用的外键字段呢?

最佳答案

您可以使用 Metadata属性以获取关联的 INavigation , 然后 ForeignKey属性以获取关联的 IForeignKey , 然后是 Properties属性以获取 IProperty 类型的关联属性,最后是 Name可以传递给 Property 的属性获取关联PropertyEntry的方法用于操纵值。

将所有这些付诸实践:

var entry = dbContext.Entry(entity);
foreach (var reference in entry.References)
{
reference.CurrentValue = null;
foreach (var fkProperty in reference.Metadata.ForeignKey.Properties)
entry.Property(fkProperty.Name).CurrentValue = null;
}

关于entity-framework-core - 如何找到导航属性的外键字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60671303/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com