title: C# implement interface with properties that are interface.
body: <p>I am using EF code first to generate my db and I do need concrete property for ICollection of EF entity models. I am writing a data access layer ( Using generic classes) however hit the following road block with using interfaces in my generic class as shown below.  </p>
  
  <pre><code>public interface ITestClassProp
  {
      int Value { get; set; }
  }
  
  public class TestClassProp : ITestClassProp
  {
      public int Value { get; set; }
  }
  
  
  public interface ITestClass
  {
      ICollection&lt;ITestClassProp&gt; TestProp { get; set; }
  }
  
  public class TestClass : ITestClass
  {
      // works
      //public ICollection&lt;ITestClassProp&gt; TestProp { get; set; }
      // does not work
      public ICollection&lt;TestClassProp&gt; TestProp { get; set; }
  }
  </code></pre>
  
  <p>Am I totally mis using the interfaces? why cant I use TestClassProp instead of ITestClassProp?</p>
  
  <p>Thanks</p>