我正在尝试为 EF 的以下模型搭建一个控制器,但我收到了:
无法检索“Project.Models.ItemModel”的元数据。
值不能为空。
参数名称:entitySet'
它是否试图从某处检索某些东西但无法检索?
项目型号
public class ItemModel
{
public class ItemPicture
{
[Key, ForeignKey("ItemModel")]
public virtual int ItemID {get;set;}
public HttpPostedFileBase Image { get; set; }
public virtual ItemModel ItemModel { get; set; }
}
[Key]
public int ItemID { get; set; }
[Required(ErrorMessage ="{0} is required.")]
[Display(Name ="Item Name")]
public string ItemName { get; set; }
[Required(ErrorMessage = "{0} is required.")]
[Display(Name = "Item Description")]
[DataType(DataType.MultilineText)]
public string ItemDesc { get; set; }
[Required(ErrorMessage = "{0} is required.")]
[Display(Name = "Item Price")]
public decimal ItemPrice { get; set; }
public virtual ItemPicture Picture { get; set; }
[Required(ErrorMessage = "{0} is required.")]
[Display(Name = "Enable Front Feature")]
public bool FrontFeature { get; set; }
}
我自己尝试过...不认为您应该将 HttpPostedFileBase 存储为模型的属性,至少不要通过 EntityFramework 映射它并让它自动搭建脚手架。如果您考虑一下 - 您认为该属性类型会映射到哪些数据库字段?
如果您想将二进制数据实际存储在数据库中,请使用以下命令:
public byte[] File { get; set; }
非常感谢您解决这些问题,但我主要关心的是 dbcontext 如何创建它以及我必须在哪里创建它?