/// <summary>Registers DB View based on a query. </summary> /// <typeparam name="TViewEntity">The entity that represents the output of the view.</typeparam> /// <param name="query">The query expression encoding the select logic of the view. Usually the return type is an anonymous /// object with properties matching the view entity type.</param> /// <param name="options">View options, optional.</param> /// <param name="upgradeMode">View upgrade mode.</param> /// <param name="viewName">View name, optional. If missing, the name of view entity type is assumed.</param> public void RegisterView <TViewEntity>(IQueryable query, DbViewOptions options = DbViewOptions.None, string viewName = null, DbViewUpgradeMode upgradeMode = DbViewUpgradeMode.AutoOnMismatch) where TViewEntity : class { Util.Check(typeof(TViewEntity).IsInterface, "View entity must be an interface."); Util.CheckParam(query, nameof(query)); Views.Add(new ViewDefinition(this, typeof(TViewEntity), query, options, viewName, upgradeMode)); }
public ViewDefinition(EntityModule module, Type entityType, IQueryable query, DbViewOptions options, string name, DbViewUpgradeMode upgradeMode = DbViewUpgradeMode.AutoOnMismatch) { Module = module; EntityType = entityType; Query = query; Options = options; Name = name; UpgradeMode = upgradeMode; }