public static DynamicPropertySetter <TObject> CreatePropertySetter <TObject>(params PropertyInfo[] members) { DynamicMethod setterMethod = CreatePropertySetterImpl <TObject>(members); DynamicPropertySetter <TObject> setter = (DynamicPropertySetter <TObject>)setterMethod.CreateDelegate(typeof(DynamicPropertySetter <TObject>)); return(setter); }
internal IdentityField(IdentitySpecification <TEntity> identitySpecification) { this.identitySpecification = identitySpecification; this.nextIdentity = this.identitySpecification.Seed; MemberExpression member = ExpressionHelper.FindMemberExpression(identitySpecification.IdentityColumn.Body); PropertyInfo identityInfo = member.Member as PropertyInfo; this.identityType = identityInfo.PropertyType; this.identitySetter = DynamicMethodBuilder.CreatePropertySetter <TEntity>(identityInfo); this.identityGetter = this.identitySpecification.IdentityColumn.Compile(); }