title: C# - when to use public int virtual, and when to just use public int
body: <p>I am working through a tutorial 'Professional ASP.NET MVC 3' by J Galloway. In this tutorial, Jon shows us how to build the MVC music store.</p>
  
  <p>I am at the part where we are creating CS classes to model the data using EF code first.</p>
  
  <p>I <strong>all</strong> the examples in the book, <code>public virtual int property {get; set; }</code> is used with no explanation. The term virtual is stuffed EVERYWHERE.</p>
  
  <p>Elsewhere on the web, I have not seen the term virtual used with any kind of concistency whatsoever.</p>
  
  <p>Could anybody explain to me:</p>
  
  <ol>
  <li>The purpose of the term 'virtual' in this particular context</li>
  <li>Is using 'virtual' necessary?</li>
  <li>Why do some people use 'virtual' and others do not?</li>
  <li>Why do some people only use 'virtual' when defining foreign keys?</li>
  <li>What is the best practice use of the term 'virtual'?</li>
  </ol>
  
  <p>Many thanks in advance</p>