Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6160831
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T21:23:30+00:00 2026-05-23T21:23:30+00:00

I am using Entity Framework code first and ASP.NET MVC 3. I have the

  • 0

I am using Entity Framework code first and ASP.NET MVC 3.

I have the following context defined:

public class PbeContext : DbContext
{
     public DbSet<Category> Categories { get; set; }

     protected override void OnModelCreating(DbModelBuilder dbModelBuilder)
     {
          dbModelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
     }
}

My Category class:

public class Category
{
     public int Id { get; set; }
     public string Name { get; set; }
     public string Description { get; set; }
     public string MetaKeywords { get; set; }
     public string MetaDescription { get; set; }
     public bool IsActive { get; set; }
     public Category ParentCategory { get; set; }
     public int ParentCategoryId { get; set; }
}

ParentCategoryId in my Category table is a foreign key that is linked to the Id (Category Id) column.

On my create view there is a drop drown list displaying all the parent categories. You don’t have to select a parent category. If none is selected then it means that you are creating/capturing a parent category.

How I normally did it in the past is if the user does not select a parent category from the drop down list then I would make ParentCategoryId in my Category table NULL. Currently it is trying to add 0 to the table and failing because there is no category with and Id of 0. Is it still best practices to add it as a NULL value if no parent category is selected? If so, how would I do it using Entity Framework code first?

EDIT

I have changed the int in my view model and Category class to nullable as suggested.

public class CreateCategoryViewModel
{
    public CreateCategoryViewModel()
    {
        IsActive = true;
    }

     public string Name { get; set; }
     public string Description { get; set; }
     public string MetaKeywords { get; set; }
     public string MetaDescription { get; set; }
     public bool IsActive { get; set; }
     public SelectList ParentCategoriesSelectList { get; set; }
     public int? ParentCategoryId { get; set; }
}

My updated category class:

public class Category
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public string MetaKeywords { get; set; }
    public string MetaDescription { get; set; }
    public bool IsActive { get; set; }
    public int? ParentCategoryId { get; set; }
}

My dropdown list has a default “– Select –” option with a value of 0. When I click submit the ParentCategoryId in the view model is 0. I map it to the category class and the ParentCategoryId is still zero. When and how is this converted to NULL? The error that I am still getting is:

The INSERT statement conflicted with the FOREIGN KEY SAME TABLE constraint "FK_Category_Category". The conflict occurred in database "ProgrammingByExample", table "dbo.Category", column 'Id'.
The statement has been terminated.
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T21:23:30+00:00Added an answer on May 23, 2026 at 9:23 pm

    Make ParentCategoryId nullable

    public class Category
    {
         public int Id { get; set; }
         public string Name { get; set; }
         public string Description { get; set; }
         public string MetaKeywords { get; set; }
         public string MetaDescription { get; set; }
         public bool IsActive { get; set; }
         public Category ParentCategory { get; set; }
         public int? ParentCategoryId { get; set; }
    }
    

    Edit

    My dropdown list has a default “– Select –” option with a value of 0

    The default option should not have a value(you have put 0)
    Eg:

    @Html.DropDownFor(model => model.ParentCategoryId, 
        (SelectList)ViewBag.ParentCategories, "-- Select --")
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am using Entity Framework 4.1 code first and ASP.NET MVC 3. I have
I am using Entity Framework 4.1 code first and ASP.NET MVC 3 and I
I'm building an ASP.NET MVC 3 site using the code-first Entity Framework 4 approach.
Using the Entity Framework Code First paradigm I have defined the following objects and
I'm using ASP.NET MVC 3 and Entity Framework 4.1 Code First. Let's say I
I have this classes who is mapped using Entity Framework Code First: public class
I'm developing a web application using ASP.NET MVC 3 and Entity Framework Code First
I am using ASP.NET MVC 3 and Entity Framework 4.1 code first . I
First some brief background: I have an existing ASP.NET MVC 1 application using Entity
I'm writing an ASP.net MVC3 application using Entity Framework Code First and SqlCe4. I

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.