private IList<PropertyInfo> ListProperties<T>(T t) { var properties = (from p in typeof(T).GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance) .Where(pi => !(pi.PropertyType.IsSubclassOf(typeof(EntityObject))) && !(pi.PropertyType.IsSubclassOf(typeof(EntityReference)))) select p).ToList<PropertyInfo>(); return properties;