Have you set identity?
Your code seems to be look ok.
public class Customer : DatabaseEntity
{
public int Id { get; set; }
Is this value set to null during creation of object?Your code seems to be look ok.