我正在使用Visual FoxPro数据库上的Entity Framework(我还没有听说过)。我在使用模型的数据注释创建关系时遇到了问题。
我简化了课程:
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
。 ObjectId
上的Heading
(外键)是string
。
我收到以下例外:
在模型生成期间检测到一个或多个验证错误:
Country_Headings_Source_Country_Headings_Target ::所有类型 参照约束的从属角色中的属性必须是 与主体角色中的相应属性类型相同。 物业的类型&#39; Headingid&#39;实体&#39;标题&#39;不匹配 财产的类型&#39; Sid&#39;实体&#39;国家&#39;在参考 约束&#39; Country_Headings&#39;。
问题是数据类型不同。我有什么方法可以建立这种关系吗?
感谢。
答案 0 :(得分:1)
修改的 这曾经用于枚举,可以用这个吗?
public class Country
{
[Key]
public int Sid { get; set; }
[ForeignKey("ObjectIdInt")]
public virtual ICollection<Heading> Headings { get; set; }
...
}
public class Heading
{
[Key]
public int Id { get; set; }
public string ObjectId { get; set; }
public int ObjectIdInt
{
get { return int.Parse(ObjectId); }
set { ObjectId = value.ToString() }
}
}