public ConvertedViewIntersectionField(
     string fieldName, bool canRead, bool canWrite, TypeModel declaringTypeModel,
     PropertyInfoField originPropertyField, IFieldPath <ViewIntersectionModel, ViewIntersectionField> path,
     TryConvertDelegate <TSourceData, TDestinationData> tryConvertDelegate
     ) :
     base(
         fieldName, canRead, canWrite, typeof(TDestinationData), declaringTypeModel, originPropertyField
         )
 {
     _path = path;
     _tryConvertDelegate = tryConvertDelegate;
 }
        protected ViewIntersectionField(
            string fieldName, bool canRead, bool canWrite, Type fieldDataType, TypeModel declaringTypeModel,
            PropertyInfoField originPropertyField
            )
        {
            FieldName           = fieldName;
            CanRead             = canRead;
            CanWrite            = canWrite;
            FieldDataType       = fieldDataType;
            DeclaringTypeModel  = declaringTypeModel;
            OriginPropertyField = originPropertyField;

            if (SqlTypeHelper.GetDataType(fieldDataType) == null)
            {
                SelfModel = ViewIntersectionModel.FromTypeModel(
                    TypeModel.GetModelOf(fieldDataType)
                    );
            }
        }
 private static ViewIntersectionField BuildField(PropertyInfoField sourceField, FieldBuilder builder)
 {
     sourceField.Dispatch(builder);
     return(builder.Field);
 }