protected override object CreateModel( ControllerContext controllerContext, ModelBindingContext bindingContext, Type modelType) { if (modelType.IsEntity() && FetchFromRepository) { var id = GetIdFromValueProvider(bindingContext, modelType); if (id.HasValue && id.Value != 0) { var repository = repositoryResolver.GetRepository(modelType); object entity; try { entity = repository.GetById(id.Value); } finally { repositoryResolver.Release(repository); } return entity; } } // Fall back to default model creation if the target is not an existing entity return base.CreateModel(controllerContext, bindingContext, modelType); }
public EntityExpression(Type type, PrimaryKeyExpression externalId, Alias tableAlias, IEnumerable<FieldBinding> bindings, IEnumerable<MixinEntityExpression> mixins, bool avoidExpandOnRetrieving) : base(DbExpressionType.Entity, type) { if (type == null) throw new ArgumentNullException("type"); if (!type.IsEntity()) throw new ArgumentException("type"); if (externalId == null) throw new ArgumentNullException("externalId"); this.Table = Schema.Current.Table(type); this.ExternalId = externalId; this.TableAlias = tableAlias; this.Bindings = bindings.ToReadOnly(); this.Mixins = mixins.ToReadOnly(); this.AvoidExpandOnRetrieving = avoidExpandOnRetrieving; }
public bool IsEntity(Type type, bool declared) { return declared || type.IsEntity(); }
protected override Boolean CanHandle(Type fieldType) { return fieldType.IsEntity(); }
static string GetTypeNiceName(Type type) { if(type.IsModifiableEntity() && !type.IsEntity()) return type.NiceName(); return null; }
public Boolean CanHandle(Type type) { return type.IsEntity(); }