ANSWER #1.
Entity Framework will infer that because the property is called Id.
ANSWER #2.
Use the [key] annotation
public class ExpenseModel
{
[KEY]
public int id { get; set; }
public string reason { get; set; }
public decimal price { get; set; }
public DateTime dtCreated { get; set; }
}
ANSWER #3.
Below is how you get a composite Key
public class ExpenseModel
{
[Key, Column(Order = 0)]
public int id { get; set; }
[Key, Column(Order = 1)]
public string reason { get; set; }
public decimal price { get; set; }
public DateTime dtCreated { get; set; }
}
ANSWER #4.
public class ExpenseModel
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int id { get; set; }
public string reason { get; set; }
public decimal price { get; set; }
public DateTime dtCreated { get; set; }
}