title: ERROR the property or indexer cannot be used in this context because the set accessor is inaccessible
body: <p>I have the following code: </p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Text;
  using ProjectBase.Utils;
  
  namespace EnterpriseSample.Core.Domain
  {
      public class Notifikasi : DomainObject&lt;string&gt;, IHasAssignedId&lt;string&gt;
      {
          public string Name { get; set; }
          public string Description { get; set; }
          public DateTime StartDate { get; set; }
          public DateTime EndDate { get; set; }
          public DateTime CreatedDate { get; set; }
          public string CreatedBy { get; set; }
          public DateTime UpdateDate { get; set; }
          public string UpdateBy { get; set; }
  
          public void SetAssignedIdTo(string assignedId)
          {
              Check.Require(!string.IsNullOrEmpty(assignedId), "assignedId may not be null or empty");
  
              // As an alternative to Check.Require, which throws an exception, the 
              // Validation Application Block could be used to validate the following
              Check.Require(assignedId.Trim().Length == 5, "assignedId must be exactly 5 characters");
  
              ID = assignedId.Trim().ToUpper();
          }
  
          public override int GetHashCode()
          {
              return (GetType().FullName + "|" +
                      ID + "|" +
                      Name).GetHashCode();
  
          }
      }
  }
  </code></pre>
  
  <p>I use the Notifikasi Class in a different class, but <code>oNoti.ID = "12";</code> generates an error:</p>
  
  <blockquote>
    <p>The property or indexer cannot be used in this context because the set
    accessor is inaccessible.</p>
  </blockquote>
  
  <p>Can anybody help me solve this? (I use an ORM if that's relevant).</p>
  
  <pre><code>INotifikasiDao dao = DaoFactory.GetNotifikasiDao();
  
  dao.closeSession();
  dao.openSession();
  EnterpriseSample.Core.Domain.Notifikasi oNoti = new EnterpriseSample.Core.Domain.Notifikasi();
  int no = 1;
  oNoti.Name = "ETL Account History";
  DateTime startDate = DateTime.Today;
  DateTime expiryDate = startDate.AddDays(30);
  oNoti.StartDate = startDate;
  oNoti.EndDate = expiryDate;
  oNoti.Description = "ACC_HIST" + startDate + "Failure";
  oNoti.ID = "12"; //this is where the error happens
  
  dao.Update(oNoti);
  </code></pre>