C# Fluent Api-人物与创作

C# Fluent Api-人物与创作,c#,asp.net,ef-code-first,ef-fluent-api,C#,Asp.net,Ef Code First,Ef Fluent Api,我有一个问题。我在实体框架中使用了两个类。 第一个是个人类: 使用int-id、字符串名称和action creationincl。外键。 第二个是动作类。 有身份证,时间和一个人。外键。 当我尝试迁移它时,我得到一个错误,我应该使用fluentapi来创建这两者之间的关系。 我搜索了一下,但很可能是一个我找不到相关信息的案例 public class Person { [Key] public int IdPerson { get; set; } public str

我有一个问题。我在实体框架中使用了两个类。 第一个是个人类: 使用int-id、字符串名称和action creationincl。外键。 第二个是动作类。 有身份证,时间和一个人。外键。 当我尝试迁移它时,我得到一个错误,我应该使用fluentapi来创建这两者之间的关系。 我搜索了一下,但很可能是一个我找不到相关信息的案例

public class Person
{
    [Key]
    public int IdPerson { get; set; }

    public string Name{ get; set; }

    public int? CreationId { get; set; }
    [ForeignKey("CreationId")]
    public Action Creation{ get; set; }
}

public class Action
{
    [Key]
    public int IdAction { get; set; }

    [Required]
    [Column(TypeName = "DateTime2")]
    public DateTime Moment { get; set; }

    public int? PersonId { get; set; }
    [ForeignKey("PersonId")]
    public Person Person { get; set; }
}
错误消息为德语:

这是我的第一次约会 FunWeb.Models.Core.Person'und'FunWeb.Models.Core.Aktion'konnte 我不知道。这是我的荣幸 流畅的编程语言 Datenanmerkungen解释了这一点

但它说我需要自己配置关系

对不起我的英语,谢谢你的帮助

编辑: 我试过:

modelBuilder.Entity<Person>().HasRequired(p => p.Creation).WithOptional(a => a.Person);
但我得到了以下错误:

这是一个典型的人物模型。核心。行动。德·弗雷姆德施吕塞尔名字“PersonId”wurde im abhängigen Typ”模型。核心。人物“nicht gefunden”。我们的名字是弗雷姆德施莱因森的名字


我试图翻译:类型操作的propaty Person的ForeignKeyAttribute是有效的。在Models.Core.Person中找不到外键“PersonId”。名称值需要是ForeignKeyAttributes的单独名称列表。

您的问题是ForeignKey属性负责一对多关系。但似乎你想要一对一的关系。要设置一对一,应使用fluent api。 它将类似于:

modelBuilder.Entity<Person>().HasRequired(p=>p.Creation).WithOptional(a=>a.Person)

你剩下的问题呢?对不起,错过了预览按钮,点击了sumit。我现在已经更新了。你能添加相关代码和完整的错误消息文本吗?请参阅进一步的指南。好的,给我5分钟