public int id { get; set; } is automatic property and doesn't create any private version. Just use "id" in your code.
http://msdn.microsoft.com/en-us/library/bb384054.aspxIf you still want access private use traditional style.
private int _id;
public int id
{
get { return _id; }
set { _id = value;}
}