我正在通过Visual FoxPro数据库使用实体框架(我还没有听说过)。我遇到了使用数据注释为模型创建关系的问题。实体框架不同的外键数据类型
我已经简化类:
public class Country
{
[Key]
public int Sid { get; set; }
[ForeignKey("ObjectId")]
public virtual ICollection<Heading> Headings { get; set; }
...
}
public class Heading
{
[Key]
public int Id { get; set; }
public string ObjectId { get; set; }
}
关系:一个国家有很多标题。 (一对多)
请注意Country
有一个Id,它是一个int
。而Heading
上的ObjectId
(外键)是string
。
我收到以下异常:
Country_Headings_Source_Country_Headings_Target:模型生成过程中检测到
一个或多个验证错误:在一个引用约束的从属角色类型都 属性必须是 与主体角色中相应的属性类型相同。 实体“标题”上的属性'Headingid'的类型不匹配 实体'国家'中属性'Sid'的类型,参考 约束'Country_Headings'。
问题是数据类型不同。有什么办法可以让我有这种关系吗?
谢谢。
什么是标题的主要关键? 它看起来好像你有一个外键不是一个键字段 –
@AntonyKoch标题的主键是'Id'。关系是国家的'Sid'到标题的'ObjectId'。我希望这是有道理的。 –