private static PersistentFieldExpression BuildNestedFieldExpression(FieldInfo nestedField, int offset)
 {
     if (nestedField.IsPrimitive)
     {
         return(FieldExpression.CreateField(nestedField, offset));
     }
     if (nestedField.IsStructure)
     {
         return(StructureFieldExpression.CreateStructure(nestedField, offset));
     }
     if (nestedField.IsEntity)
     {
         return(EntityFieldExpression.CreateEntityField(nestedField, offset));
     }
     if (nestedField.IsEntitySet)
     {
         return(EntitySetExpression.CreateEntitySet(nestedField));
     }
     throw new NotSupportedException(string.Format(Strings.ExNestedFieldXIsNotSupported, nestedField.Attributes));
 }