无法通过实体freamwork C#asp.net mvc保存文件

无法通过实体freamwork C#asp.net mvc保存文件,c#,asp.net,asp.net-mvc,entity-framework,C#,Asp.net,Asp.net Mvc,Entity Framework,我有2个类别的产品和文件这样运气 public class Product { public Product() { Image = new File(); } public int ProductID { get; set; } public string Name { get; set; } public string Manufacturer { get; set; } public decimal SizeH { get; se

我有2个类别的产品和文件这样运气

 public  class Product
{
   public Product()
   {
       Image = new File();
   }
   public int ProductID { get; set; }
   public string Name { get; set; }
   public string Manufacturer { get; set; }
   public decimal SizeH { get; set; }
   public decimal SizeW { get; set; }
   public int Weight { get; set; }
   public string CPU { get; set; }
   public int Storage { get; set; }
   public string OpSys { get; set; }
   public int Price { get; set; }
  public  File Image { get; set; }
}
public  class File
{

   public int FileID { get; set; }
    public string FileType { get; set; }
  public   byte[] FileData { get; set; }
}
保存产品的方法是这样的。我对它进行了调试,信息以良好的状态到达这个状态,所有内容都是字节[],但在这个唯一的类文件没有保存之后,其他所有内容都保存OK

public void SaveProduct(Product product)
{
    if(product.ProductID==0)
    {
        context.Products.Add(product);
    }
    else
    {
        Product dbentry = context.Products.Find(product.ProductID);
        if (dbentry != null)
        {
             dbentry.Name = product.Name;
             dbentry.Manufacturer = product.Manufacturer;
             dbentry.OpSys = product.OpSys;
             dbentry.Price = product.Price;
             dbentry.SizeH = product.SizeH;
             dbentry.SizeW = product.SizeW;
             dbentry.Storage = product.Storage;
             dbentry.Weight = product.Weight;
             dbentry.Image = product.Image;
        }    
    }
context.SaveChanges();
}

数据库看起来像这样
您的文件可能已正确保存,但由于EF执行延迟加载的方式,无法正确加载。请尝试以下操作之一:

1) 将产品上的图像属性更改为虚拟。这将允许延迟加载正常工作

public virtual File Image { get; set; }
2) 在查询产品的上下文时,向EF提供Include提示,以便它在加载产品的同时加载Image属性。这种策略称为急加载

Product dbentry = context.Products.Include('Image').FirstOrDefault(p => p.ProductID == product.ProductID);

您确定您的
产品.Image
包含来自数据库的有效条目吗?您是如何为产品->文件关系配置EF的?我在DB的产品表中看到一个Image\u FileId字段,它是自动生成的吗?enty不是问题所在,问题是如果产品是新的,并且ID=0,则存在context.Products.Add(产品);这不起作用evryting exept图像被保存并显示得很好它是由entiti freamwork代码ferst db set future这里是代码公共类EFDbContext:DbContext{public DbSet Products{get;set;}public DbSet Files{get;set;}如果(product.ProductID==0){context.Products.Add(product);}您能给我们展示产品和文件表的内容吗?内容是什么意思?这是仅用于测试的内容,但DB可以工作