protected internal ClassJoinOneDefine(ClassDefineMetadata metadata, MemberInfo member, Func <TEntity, ISpecification <TJoin>, ISpecification <TJoin> > joinExpr) :
     base(metadata, ClassJoinType.HasOne, member, joinExpr)
 {
     cascadeDefine = new ClassJoinOneCascadeDefine <TEntity, TJoin>(JoinMetadata);
     cacheDefine   = new ClassJoinCacheDefine <TEntity, TJoin>(JoinMetadata.JoinCache);
 }
 protected internal ClassJoinOneDefine(ClassDefineMetadata metadata, MemberInfo member, Action <TEntity, HasOneByForeignKeyDefine> foreignKeyDefine)
     : base(metadata, ClassJoinType.HasOneByForeignKey, member, foreignKeyDefine)
 {
     cascadeDefine = new ClassJoinOneCascadeDefine <TEntity, TJoin>(JoinMetadata);
     cacheDefine   = new ClassJoinCacheDefine <TEntity, TJoin>(JoinMetadata.JoinCache);
 }