【发布时间】:2016-07-19 06:50:44
【问题描述】:
这是对象图片
public int Id { get; } //primary key
public string Path { get; set; } //not null
public string Name { get; set; } //not null
public string Url { get; set; } //allows null
public string SecureUrl { get; set; } //allows null
EFDbImageRepository
public void UploadToCloud(Image image)
{
System.Diagnostics.Debug.WriteLine(image.Id);
if(image.Id == 0)
{
context.Images.Add(image);
}else
{
Image dbEntry = context.Images.Find(image.Id);
}
context.SaveChanges();
}
在 UploadImage 操作中的控制器中
...
Image image = new Image();
image.init(path, "defaultName1", "type");
imageRepository.UploadToCloud(image);
...
目前 UploadToCloud 我有一个例外:
'System.Data.Entity.ModelConfiguration.ModelValidationException' in EntityFramework.dll
似乎数据有问题,我尝试保存,但我不明白出了什么问题。此时我只初始化 2 个字段路径和名称。 Id 应该自动设置,Url 和 SecureUrl 允许为空,所以一切都应该是好的。
如何将对象保存到数据库中?
【问题讨论】:
-
在 public int Id { get; 上方添加 [Key] 属性} 并尝试
-
您必须查看 ValidationExceptions 集合以了解问题所在。请参阅stackoverflow.com/questions/27777004/… 怎么做,
-
此外,您的更新代码不起作用。将实体分配给
dbEntry不会导致它更新。请再次阅读有关如何更新实体的教程。
标签: asp.net-mvc entity-framework