title: How to use Entity(EF) and EntityDTO with Contract(Interface)
body: <p>I have an Entity(EF) in DAL, which have generated by Entity Framework.
      </p>
  
  <pre><code>public partial class User : IUser
  {
      public Guid Id { get; set; }
  
      [Required]
      [StringLength(20)]
      public string Login { get; set; }
  
      [Required]
      [StringLength(25)]
      public string Password { get; set; }
  
      [Required]
      [StringLength(50)]
      public string Email { get; set; }
  
      [StringLength(30)]
      public string Lastname { get; set; }
  
      [StringLength(30)]
      public string Firstname { get; set; }
  
      [StringLength(200)]
      public string Avatar { get; set; }
  
      public Guid? DepartmentId { get; set; }
      public Guid? RoleId { get; set; }
      public virtual Department Department { get; set; }
      public virtual Role Role { get; set; }
  }
  </code></pre>
  
  <p>I've created UserDto in BLL</p>
  
  <pre><code>public class UserDto : IUser
  {
      public Guid Id { get; set; }
      public string Login { get; set; }
      public string Password { get; set; }
      public string Email { get; set; }
      public string Lastname { get; set; }
      public string Firstname { get; set; }
      public string Avatar { get; set; }
      public DepartmentDto Department { get; set; }
      public RoleDto Role { get; set; }
      public Guid? DepartmentId { get; set; }
      public Guid? RoleId { get; set; }
  }
  </code></pre>
  
  <p>To transfer data between DAL and BLL I'm using Contract(Interface)</p>
  
  <pre><code>public interface IUser
  {
      Guid Id { get; set; }
      string Login { get; set; }
      string Password { get; set; }
      string Email { get; set; }
      string Lastname { get; set; }
      string Firstname { get; set; }
      string Avatar { get; set; }
  }
  </code></pre>
  
  <p>How ,in this case, to transfer navigation fields between DAL and BLL? Like this:</p>
  
  <pre><code>public virtual Department Department { get; set; }
  public virtual Role Role { get; set; } 
  </code></pre>
  
  <p><strong>How better to do:</strong> </p>
  
  <p><strong>Remove contract(interface) and transfer User(EF) to BLL directly or advice solution to solve this issue. 
  Is it right to remove contract(interface) with architecture point of view?</strong></p>