private static Variance keyedTypedHomogeneousObjectEnumerableCompare <T, TSubType>(IdPropertyAttribute idAttribute, T val1, T val2, string fieldName) { var idMember = typeof(TSubType).GetMember(idAttribute.IdProperty).FirstOrDefault(); if (idMember == null) { throw new IdMemberNotFoundException(idAttribute.IdProperty, typeof(TSubType).FullName); } var subMethod = typeof(TExtensions) .GetMethod("subTypedKeyedTypedHomogeneousObjectEnumerableCompare", BindingFlags.Static, null, new [] { typeof(T), typeof(T), typeof(String) }, null) .MakeGenericMethod(new [] { typeof(T), typeof(TSubType), (idMember is PropertyInfo ? ((PropertyInfo)idMember).PropertyType : ((FieldInfo)idMember).FieldType) }); return((Variance)subMethod.Invoke(null, new object[] { val1, val2, fieldName, idMember })); }
private void GenerateIdBody(IdPropertyAttribute attribute) { bodyString += commaString(string.Format("{0} bigint NOT NULL", attribute.FieldName)); primaryKey = attribute; }