当前位置: 首页 > 编程语言 > C#

PostSharp在实体类中插入k__Backing字段,导致数据库生成失败Share

时间:2023-04-10 14:41:41 C#

PostSharp在实体类中插入k__Backing字段,导致数据库生成失败我想在WPF应用程序中使用数据库,所以实体类应该实现“INotifyPropertyChanged”。这可以使用PostSharp方面非常优雅地完成,它会在每次属性更改时自动触发PropertyChanged事件。如果我创建这样一个方面并在我的实体类上使用它,则在尝试创建数据库时会出现以下异常:tSystem.Data.Entity.Edm.EdmNavigationProperty:名称:不允许指定的名称:'k__BackingField'。显然,PostSharp创建了一个名为“k__BackingField”的属性,导致数据库创建失败,因为从EntityFramework的角度来看它是一个无效名称。有没有办法绕过这个错误而无需在每个实体类中手动实现“INotifyPropertyChanged”?PS:英语不是我的母语,如果您能告诉我发帖中可能出现的错误,我将不胜感激。提前致谢确实,PostSharp可以创建一个名为k__BackingField的属性(真实名称有点不同;您看到的是转义名称),因为我认为您正在将这个方面应用于该字段,这会导致PostSharp包装该字段进入同名房产。因此,您可以拥有以该字段命名的属性。您应该检查您是否真的想将方面添加到该字段。也许你只是想将属性添加到属性中,但错误地将其添加到字段中。默认情况下,LocationInterceptionAspects应用(多播)字段和属性。使用MulticastAttributeUsageAttribute.AttributeTargets将其限制为属性。以上是C#学习教程:PostSharp在实体类中插入k__Backing字段,导致数据库无法生成所有共享的内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文来自网络收集,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: