public static RelationshipBuilder <TParent> HasMany <TParent, TChild>(this RelationshipBuilder <TParent> relationshipBuilder, Expression <Func <TParent, LazyList <TChild> > > portalExpression, Func <TParent, int> childIdSelector) where TParent : ModelBase where TChild : ModelBase { return(relationshipBuilder.For(portalExpression.GetMemberName()) .LazyLoad((db, parent) => db.Query <TChild>().Where(c => c.Id == childIdSelector(parent)).ToList())); }
public static RelationshipBuilder <TParent> HasOne <TParent, TChild>(this RelationshipBuilder <TParent> relationshipBuilder, Expression <Func <TParent, LazyLoaded <TChild> > > portalExpression, Func <TParent, int> childIdSelector) where TParent : ModelBase where TChild : ModelBase { return(relationshipBuilder.For(portalExpression.GetMemberName()) .LazyLoad( query: (db, parent) => db.Query <TChild>().SingleOrDefault(c => c.Id == childIdSelector(parent)), condition: parent => childIdSelector(parent) > 0 )); }