【发布时间】:2017-04-12 03:53:41
【问题描述】:
我有 2 个模型:
public class Text
{
public long Id { get; set; }
public string Text { get; set; }
}
public class User
{
public int Id { get; set; }
public ICollection<Text> Texts { get; set; }
}
我的用户模型是这样的
e.HasMany(o => o.Texts).WithOne().HasForeignKey(d => d.Id).IsRequired();
当我尝试运行时:
dotnet ef 迁移添加
我收到此错误:
具有外键属性 {'Id' : long} 无法定位主 key {'Id' : int} 因为它不兼容。配置主体 键或一组兼容的外键属性 关系。
更新:
新模型应该能够拥有表格文本的集合,例如:
public class Customer
{
public int Id { get; set; }
public ICollection<Text> Texts { get; set; }
}
....
e.HasMany(o => o.Texts).WithOne().HasForeignKey(d => d.Id).IsRequired();
【问题讨论】:
-
一个是
int,另一个是long -
是的,但我怎么能说关键属性类型是长的
-
有类似的情况。为了将来参考,[此链接] (entityframeworkcore.com/knowledge-base/48998620/…) 有所帮助。从流行的答案...
[Column(TypeName = "int")] public long Id { get; set; }应该可以工作。
标签: c# entity-framework