gpt4 book ai didi

c# - 为此关系配置一个非影子主键

转载 作者:太空狗 更新时间:2023-10-29 21:43:33 24 4
gpt4 key购买 nike

我正在尝试在 ASP Core 1、RC2 项目中使用代码优先 Entity Framework 按数据库构建。

我收到此错误消息:

The key {'TempId'} contains properties in shadow state and is referenced by a relationship from 'TaskStatus' to 'TaskRunner.IsRunning'. Configure a non-shadow principal key for this relationship.

有人知道这个错误是什么意思吗?

请注意,我没有 ny 列名 tempId。我猜想 EF7 为自己构建了这个专栏。

这是我的实体

 public class TaskStatus
{
public Guid TaskConfigId { get; set; }
public string LastResultValue { get; set; }
public int RetryCount { get; set; }
public TaskStatusEnum StatusEnum { get; set; }
public DateTimeOffset LastUpdate { get; set; }
public TaskResult TaskResult { get; set; }
public TaskStatusEnum TaskStatusEnum { get; set; }
}

public class TaskRunner
{
public DateTimeOffset RunAt { get; set; }
public TaskConfig TaskConfig { get; set; }
public Guid TaskConfigId { get; set; }
public TaskStatus IsRunning { get; set; }
}

最佳答案

我能够通过手动指定一个属性作为我的模型的主键来解决这个问题。您可以尝试将 [Key] 属性放在 TaskConfigId 上,并可能将主键字段添加到 TaskRunner。

This bug report暗示使用导航属性需要显式主键,而不是让 EF 尝试根据命名约定来决定哪个属性是 PK。

我认为 Shadow Properties 只是指为支持导航属性而创建的属性(表列),例如 TaskRunner 表中名为 IsRunningTaskStatusId 的列,其中包含关联 TaskStatus 的主键。 https://docs.efproject.net/en/latest/modeling/shadow-properties.html

关于c# - 为此关系配置一个非影子主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37601004/

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