我有以下课程:
public class Company
{
public Guid Id { get; set; }
public string Name { get; set; }
public CompanyDetail CompanyDetail { get; set; } // This is optional
}
public class CompanyDetail
{
public Guid Company_Id { get; set; } // This supposed to be PK and the FK to Company
public string ContactName { get; set; }
public string WebSite { get; set; }
public string Phone { get; set; }
}
我不需要从CompanyDetail导航到公司,因此我没有导航属性。
公司可能有公司详细信息,但不是必需的。
预期的设计有一个名为CompanyDetail的表,Company_Id是PK和FK(到公司表)
创建模型时,收到以下错误:
EntityType' CompanyDetail'没有定义键。为此定义密钥 的EntityType。 CompanyDetails:EntityType:EntitySet' CompanyDetails'是 基于类型' CompanyDetail'没有定义键。
我需要如何使用Fluent API或Data Annotation解决问题。
答案 0 :(得分:1)
您需要为CompanyDetail定义[Key]
试
public class Company
{
[Key]
public Guid Id { get; set; }
public virtual CompanyDetail CompanyDetail { get; set; } // This is optional
}
public class CompanyDetail
{
[Key]
public Guid Company_Id { get; set; }
}
...
modelBuilder.Entity<Company>()
.HasOptional<CompanyDetail>(u => u.CompanyDetail)