EntityFramework 6.1添加方法

时间:2014-07-28 15:31:04

标签: entity-framework asp.net-mvc-4

我有一个非常简单的问题。总是这样用,但现在不行,为什么我不知道。

我正在研究MVC 4和Entity Framework 6.1。 我有sql表,如下图所示,其名称为Kategori,

翻译: KategoriID - > CategoryID ,KategoriIsmi - > 类别,UstKategoriId - > ParentCategoryID

enter image description here

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中) enter image description here

我有一个错误。我编写代码,在IntelliTrace中查看错误。 enter image description here

错误翻译:KategoriIDalanıgereklidir - > CategoryID字段是必需的。

但是KategoriID字段已将自动增量设置为true。 我怎么解决这个问题?感谢。

1 个答案:

答案 0 :(得分:2)

由于错误消息不是英文,因此很难说。但是,您的主键不应使用可为空的数据类型。改变这个:

public byte? KategoriID { get; set; }

对此:

public byte KategoriID { get; set; }

您可能还需要告诉实体框架该列是IDENTITY列:

[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public byte KategoriID { get; set; }