2
我有些疑惑,也许是新手怀疑,但我刚刚进入ASP.NET MVC 4 基本上我想知道正确的方式来抓取模型中的对象的细节。 在这种情况下,承包商内的图像。如何从数据库中获取属性对象
型号:
public class Contractor {
[Key]
public int ContractorID { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Address { get; set; }
public Image Avatar { get; set; }
}
public class Image {
[Key]
public int ImageID { get; set; }
[Required]
public string File_name { get; set; }
[Required]
public byte[] File_data { get; set; }
}
public class DATACRUD : DbContext {
public DbSet<Contractor> Companies { get; set; }
public DbSet<Image> Images { get; set; }
}
控制器:
private DATACRUD db = new DATACRUD();
public ActionResult GetContractorAvatar(int id)
{
Contractor contractor = db.Contractors.Find(id);
if (contractor == null)
{
return HttpNotFound();
}
Image avatar = contractor.Avatar;
问题1)
化身== null,但并不假设是因为当我创建对象承包商,我成功添加了图像(我检查了数据库,它在那里)
我看到的解决方案不是在Contractor.cs模型中具有Image属性,而只是将一个字符串属性与图像键相关联。
问题2)
即使可以抓住的图像键就像我在前面说的问题,当我通过我在调试模式下鼠标移到 私人DATACRUD DB =新DATACRUD();
db.Images也是空...
return File(avatar.File_data, "image");
}
嗨,那里,谢谢你的信息,但为什么我应该有一个外国人在图像承包商的关键?我只通过承包商或公司访问图片。但我不需要oposite – user1837862
嘿,我没有在图像中定义一个外国人的关键,但我只是尝试了像在最后一行代码中说的热切的负载,它的工作原理;)非常感谢你 – user1837862
@ user1837862我的道歉,我认为这就是你的模型是如何定义的。 – HTX9