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