我有一个非常简单的问题。总是这样用,但现在不行,为什么我不知道。
我正在研究MVC 4和Entity Framework 6.1。 我有sql表,如下图所示,其名称为Kategori,
翻译: KategoriID - > CategoryID ,KategoriIsmi - > 类别,UstKategoriId - > ParentCategoryID
KategoriID列也有,主键和身份规范是(身份增量1,种子1)
这是我的 Kategori 模型类
public class Kategori
{
[Key]
public byte? KategoriID { get; set; }
[Required(ErrorMessage = "Please insert category name")]
public string KategoriIsmi { get; set; }
public byte? UstKategoriID { get; set; }
}
我的EntityFramework保存代码
public void AddNewItem(Kategori item)
{
using (EmlakCMSContext _ent = new EmlakCMSContext())
{
_ent.Kategori.Add(item);
_ent.SaveChanges();
}
}
当我运行此代码时
收入数据(用于保存在db中)
我有一个错误。我编写代码,在IntelliTrace中查看错误。
错误翻译:KategoriIDalanıgereklidir - > CategoryID字段是必需的。
但是KategoriID字段已将自动增量设置为true。 我怎么解决这个问题?感谢。
答案 0 :(得分:2)
由于错误消息不是英文,因此很难说。但是,您的主键不应使用可为空的数据类型。改变这个:
public byte? KategoriID { get; set; }
对此:
public byte KategoriID { get; set; }
您可能还需要告诉实体框架该列是IDENTITY列:
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public byte KategoriID { get; set; }