Temel ayrıma indirgendiğinde, kimlik varlıklar için önemlidir, ancak değer nesneleri için önemli değildir. Örneğin, birinin Adı bir değer nesnesidir. Bir Müşteri varlığı, bir müşteri Adı (değer nesnesi), Liste <Sipariş> Sipariş Geçmişi (Varlıkların Listesi) ve belki bir varsayılan Adresten (tipik olarak bir değer nesnesi) oluşabilir. Müşteri Varlığının bir Kimliği olur ve her siparişin bir Kimliği olur, ancak bir Ad olmamalıdır; genel olarak, nesne modelinde zaten bir Adresin kimliği muhtemelen önemli değildir.
Değer nesneleri tipik olarak değişmez nesneler olarak temsil edilebilir; Bir değer nesnesinin bir özelliğini değiştirmek, esas olarak eski nesneyi yok eder ve yeni bir tane yaratır, çünkü siz içerik kadar kimlikle ilgilenmezsiniz. Düzgün bir şekilde, Nesnenin özellikleri başka bir örneğin özellikleriyle aynı olduğu sürece, Name üzerindeki Equals örnek yöntemi "true" değerini döndürür.
Ancak, Müşteri gibi bir varlığın bazı özelliklerini değiştirmek müşteriyi yok etmez; bir Müşteri varlığı tipik olarak değiştirilebilir. Kimlik aynı kalır (en azından nesne ısrar ettikten sonra).
Muhtemelen farkında olmadan değerli nesneler yaratırsınız; İnce taneli bir sınıf oluşturarak bir Varlığın bazı yönlerini temsil ettiğinizde, bir değer nesnesine sahip olursunuz. Örneğin, geçerli değerler üzerinde bazı kısıtlamalara sahip olan ancak daha basit veri türlerinden oluşan bir IPAdresi sınıfı bir değer nesnesi olacaktır. Bir EmailAddress bir dize olabilir veya kendi davranış kümesine sahip bir değer nesnesi olabilir.
Veritabanınızda kimliği olan öğelerin bile nesne modelinizde bir kimliği olmaması oldukça olasıdır. Ancak en basit durum, birlikte anlam ifade eden bazı özelliklerin birleşimidir. Muhtemelen Customer.FirstName, Customer.LastName, Customer.MiddleInitial ve Customer.Title'a sahip olmak istemiyorsunuz, bunları Customer.Name olarak birlikte oluşturabiliyorsanız; Kalıcılık hakkında düşündüğünüz zaman muhtemelen veritabanınızda birden çok alan olacaktır, ancak nesne modeliniz umursamıyor.