我无法在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; }
}
我做错了什么?
有一个伟大的答案在这里 。
但基本上:比如说如果您有一个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; }
}
如果要使用id作为记录标识符,请勿为此使用GUID(反之亦然)。 像这样(假设您先使用EF Code):
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; }
}
希望这可以帮助