gpt4 book ai didi

entity-framework - 为什么我的外键引用属性没有反射(reflect)外键 ID 属性值?

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

我有一个 Candidate实体,下面举例说明了一些关联。我有一个没有引用属性的 View 模型,只有外键属性,我使用 AutoMapper 将 View 模型映射回实体。当我尝试保存实体时,我收到验证错误,告诉我例如标题字段是必需的。因为虽然我的 TitleId有一个有效值,Title仍然为空。

public class Candidate
{
...
[Required]
public string RefNum { get; set; }

[ForeignKey("TitleId")]
[Required]
public Title Title { get; set; }
public Guid TitleId { get; set; }
...
}

PS,我怎么能看到 Required属性在这里造成了麻烦,但我还能如何坚持 TitleId 必须是一个有效的 ID,而不仅仅是一个空的 Guid?

最佳答案

删除 [Required]属性。无论如何它不能保证您的 Guid 不为空,因为 Guid 为空 {00000000-0000-0000-0000-000000000000}是一个有效的 Guid,它是一个有效的 uniqueidentifier数据库中的列值。 ( Guidstruct 而不能是 null 。)您有责任设置正确的 Guid 值。因为Guid不可为空 EF 无论如何都会根据需要检测关系。

或者,您也可以关闭上下文实例的验证...

context.Configuration.ValidateOnSaveEnabled = false;

...避免错误。您还可以在 Fluent API ( HasRequired/WithRequired ) 中配置映射,而不是使用数据注释来避免验证错误。

关于entity-framework - 为什么我的外键引用属性没有反射(reflect)外键 ID 属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9787396/

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