Kovpaev Alexey Kovpaev Alexey - 9 days ago 6
C# Question

Why is EF trying to insert NULL in id-column?

Sorry for my English.

I am writing my project using Entity Framework 4.0 (Model first).
At the beginning of the project, I faced with this problem: I am trying to insert the filled object in the database, but I get an exeption:

"Cannot insert the value NULL into column 'CategoryId', table 'ForumDB.dbo.Categories'; column does not allow nulls. INSERT fails. The statement has been terminated."

Category usingCategory = new Category("Using Forums", "usingforums", 0);
using (Context)
{
Context.Categories.AddObject(usingCategory);
Context.SaveChanges();
}


I checked this object, and I am sure that it is filled.

Just in case:

public Category(string name, string urlName, int index)
{
CategoryId = Guid.NewGuid();
Name = name;
UrlName = urlName;
CategoryIndex = index;
}


Please tell me what is going on?
Thanks for any help!

Answer

Have a look at this: http://stackoverflow.com/a/5338384/171703 - entity framework might be assuming that your CategoryId field is an identity and therefore passing null to the database expecting it to fill it for you.