我无法在MVC WEB API中建立简单的外键关系。我很困惑它是如何工作的。经过几个小时试图让它发挥作用后,我现在很困惑。
我有3个模型类:Task,TaskSubtype和Account
Tasksubtype在创建时具有accountID和TaskSubtypeId:
public class Task
{
public int id { get; set; }
[Key]
public Guid TaskId { get; set; }
[ForeignKey("TaskSubType")]
public Guid TaskSubTypeId { get; set; }
[ForeignKey("Account")]
public Guid UserId { get; set; }
}
public class Account
{
public int Id { get; set; }
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid UserId { get; set; }
}
public class TaskSubType
{
public int id { get; set; }
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid SubTaskID { get; set; }
public String Name { get; set; }
}
我做错了什么?
答案 0 :(得分:1)
答案很清楚Here。
但基本上是:比如说你有一个Order类,添加一个引用你模型中另一个类的属性,例如Customer应该足以让Entity Framework知道那里有一个关系:
public class Order
{
public int ID { get; set; }
// Some other properties
// Foreign key to customer
public virtual Customer Customer { get; set; }
}
答案 1 :(得分:0)
如果要将id用作记录标识符,请不要将GUID用于此目的(反之亦然)。 像这样(假设您使用的是EF Code First):
public class Task
{
[Key]
public int id { get; set; }
[ForeignKey("TaskSubTypeId")]
public int TaskSubTypeId { get; set; }
[ForeignKey("AccountId ")]
public int AccountId { get; set; }
}
public class Account
{
[Key]
public int Id { get; set; }
}
public class TaskSubType
{
[Key]
public int id { get; set; }
public String Name { get; set; }
}
希望这有帮助