LINQ queries to fetch first and last name
You can achieve this by using the group by clause to create an aggregated list constrained by Unique_Location_ID and Item_Type_Identifier. To make the query more readable, store the names in local variables using the let clause.

Dim name As String = (
    From row In (From r In db.ItemDetails Where r.Unique_Location_ID = locationID And r.Item_Type_Identifier = 1 Select r)
    Group row By row.Unique_Location_ID Into rows = Group
    Let firstName = (From row In rows Where row.Category_Attribute_Identifier = 2 Select CStr(row.Value)).FirstOrDefault()
    Let lastName = (From row In rows Where row.Category_Attribute_Identifier = 3 Select CStr(row.Value)).FirstOrDefault()
    Select String.Concat(firstName, " ", lastName).Trim()
).FirstOrDefault()


I also advice you to not use underscores in public members as suggested in the .net general naming conventions. So, if possible, rename the members to UniqueLocationID, ItemTypeIdentifier and CategoryAttributeIdentifier.