gpt4 book ai didi

database - 如何从数据库中获取属性对象

转载 作者:搜寻专家 更新时间:2023-10-30 20:58:16 24 4
gpt4 key购买 nike

我有一些疑问,也许是新手的疑问,但我刚刚进入 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; }
}

Controller :

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)

avatar == null,但应该不是,因为当我创建对象 Contractor 时,我成功添加了图像(我检查了数据库,它就在那里)

我看到的解决方案不是在 Contractor.cs 模型中使用 Image 属性,而是将字符串属性与图像键放在一起。


问题2)

即使我可以像我在上一个问题中所说的那样抓取图像键,当我在 Debug模式下通过我的鼠标时private DATACRUD db = new DATACRUD ();

db.Images 也是空的...


        return File(avatar.File_data, "image");
}

最佳答案

因为您还没有将 Image 导航属性定义为 virtual,所以在加载 时您将不得不提前加载 Image >承包商:

db.Contractors.Include("Avatar").SingleOrDefault(c => c.ContractorID == id);

// using System.Data.Entity;
db.Contractors.Include(c => c.Avatar).SingleOrDefault(c => c.ContractorID == id);

关于database - 如何从数据库中获取属性对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13468650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com