我是.NET新手。我正在创建一个互联网商店,但我有一个问题
我的错误:
System.Data.Entity.Infrastructure.DbUpdateException:'更新条目时发生错误。有关详细信息,请参阅内部异常。'
UpdateException:更新条目时发生错误。见 细节的内在例外。
SqlException:无法将值NULL插入列' GadgetId', table' GadgetStorege.dbo.Gadgets&#39 ;;列不允许空值。插入 失败。声明已经终止。
我在解决方案中使用3个项目我在c#类库域中有一个接口IGadgetRepository,并在控制器中使用asp.net mvc
public interface IGadgetRepository
{
IEnumerable<Gadget> Gadgets { get; }
void AddGadget(Gadget gadget);
void SaveGadget(Gadget gadget);
void DeleteGadget(Gadget gadget);
}
我的模特:
public class Gadget
{
[HiddenInput(DisplayValue = false)]
[Display(Name = "ID")]
public int GadgetId { get; set; }
[Display(Name = "Name")]
public string Name { get; set; }
[Display(Name = "Type")]
public string Type { get; set; }
}
我想将对象添加到数据库:
public class EFGadgetRepository : IGadgetRepository
{
EFDbContext context = new EFDbContext();
public IEnumerable<Gadget> Gadgets
{
get { return context.Gadgets; }
}
public void AddGadget(Gadget gadget)
{
context.Gadgets.Add(gadget);
context.SaveChanges();
int id = gadget.GadgetId;
}
public void DeleteGadget(Gadget gadget)
{
Gadget dbEntry = context.Gadgets.Find(gadget.GadgetId);
context.Gadgets.Remove(dbEntry);
context.SaveChanges();
}
}
我在控制器中的方法:
[HttpPost]
public ActionResult Create(string name, string type)
{
Gadget gadget = new Gadget();
if (ModelState.IsValid)
{
gadget.Name = name;
gadget.Type = type;
repository.AddGadget(gadget);
TempData["message"] = string.Format("Gadget add \"{0}\" gadget", gadget.Name);
return RedirectToAction("Index");
}
else
{
return View(gadget);
}
}
我的照片错误: enter image description here
我想将对象和删除对象添加到数据库中。 我在我的项目中使用Entity Framewor。 我怎么解决这个问题?