我有一个问题。我有两个类,我在实体框架中使用。 第一个是一个人类: 用int id,字符串名称和动作创建(包括外键)。 第二个是行动课。 带ID,时间和人(包括外键)。 当我尝试迁移这个时,我得到一个错误,我应该使用Fluent Api来创建它之间的关系。 我搜索了一下,但它接近是我无法找到有关信息的情况。流利的Api - 人与创造
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; }
}
错误消息是在德国:
Das Prinzipalende einer Zuordnung zwischen den Typen 'FunWeb.Models.Core.Person' und 'FunWeb.Models.Core.Aktion' konnte nicht ermittelt werden. Das Prinzipalende dieser Zuordnung muss mithilfe der Fluent-API für Beziehungen oder mithilfe von Datenanmerkungen explizit konfiguriert werden.
但它说,我需要配置由我自己的关系。
对不起,我的英语,并感谢您的帮助
编辑: 我想:
modelBuilder.Entity<Person>().HasRequired(p => p.Creation).WithOptional(a => a.Person);
,但我得到以下错误:
Das 'ForeignKeyAttribute' der Eigenschaft 'Person' für den Typ 'Models.Core.Action' ist ungültig. Der Fremdschlüsselname 'PersonId' wurde im abhängigen Typ 'Models.Core.Person' nicht gefunden. Der Name-Wert muss eine durch Trennzeichen getrennte Liste mit Namen von Fremdschlüsseleigenschaften sein.
我试着翻译:Propaty的ForeignKeyAttribute类型Action的Person是有效的。 “Models.Core.Person”中找不到ForeignKey'PersonId'。名称值需要是ForeignKeyAttributes的名称的分离列表。
而你的问题的其余部分呢? –
抱歉错过了预览按钮并击中了提交。我现在更新了它。 – user3460436
你也可以添加相关的代码和完整的错误信息文本?有关进一步的指导,请参阅[询问帮助](http://stackoverflow.com/help/how-to-ask)。 –