在实体框架3.5中保存时的唯一键约束

时间:2011-06-04 09:01:44

标签: entity-framework

我使用EF 3.5并拥有一个带有类别表的数据库。我创建了一个部分类来扩展EF创建的类。我将CategoryId作为数据库中的一个键,并在模型中设置为Identity。这是我的部分课程:

public partial class Category
{

    public Category(string name, bool isChild)
    {
        this.CatName = name;
        this.IsChild = isChild;
    }

    public bool Save()
    {
        try
        {
            using (var context = new PhonebookEntities())
            {
                context.AddToCategories(this);
                context.SaveChanges();
            }
            return true;
        }
        catch (System.Exception)
        {
            return false;
        }
    }
}

但是当我尝试创建一个新的Category对象并保存它时:..:

        var category = new Category("Test", false);
        category.Save();

我得到此异常:“违反UNIQUE KEY约束'IX_Category'。无法在对象'dbo.Category'中插入重复键。\ r \ n语句已终止。” 我应该提到一个类别有一个引用它自己,因为它可以通过一个nullable int有一个父类,它指向父类别的categoryid。

1 个答案:

答案 0 :(得分:0)

IX_Category的内容是什么?如果不需要,请将其删除。在您的数据库中是否有另一个类别“Test”作为其CatName? IX_Category是CatName字段的唯一键约束吗?