protected override void OnCreateEntity(DbContextOptins options) { foreach (var item in ReflectionHelper.GetProperties(this)) { if (ReflectionHelper.IsGenericType(item.PropertyType, typeof(ISession <>)) == false) { throw new InvalidCastException($"类型 { nameof(item.PropertyType) } 必须继承 { typeof(ISession<>) }"); } var mapping = DbTypeSystem.GetMapping(this.GetType(), item); var provider = new DbSessionProvider(DbTypeSystem.GetProvider(options.DbConnection, mapping, new DbEntityPolicy())); item.CreateSetPropertyLambda()(this, provider.GetTable(ReflectionHelper.GetGenericType(item.PropertyType), item.Name)); } }
public SessionTable(DbSessionProvider session, MappingEntity entity) : base(session.sessionProvider, typeof(ISession <T>)) { this.session = session; this.entity = entity; this.underlyingTable = this.session.Provider.GetTable <T>(entity.TableId); }
public TrackedTable(DbSessionProvider session, MappingEntity entity) : base(session, entity) { this.tracked = new Dictionary <T, TrackedItem>(); this.identityCache = new Dictionary <object, T>(); }
public SessionExecutor(DbSessionProvider session, QueryExecutor executor) { this.session = session; this.executor = executor; }
public SessionProvider(DbSessionProvider session, EntityProvider provider) { this.session = session; this.provider = provider; }