На ваш вопрос: как решить это в цикле, как
var e1 = new Entity();
var e2 = // Get Entity
foreach (var p in e1.GetType().GetProperties())
{
p.SetValue(e1 , e2.GetType().GetProperty(p.Name ).GetValue(e2 , null) , null );
}
Таким образом, вы можете скопировать значение из entity2 в entity1, выполнив цикл