package resx import ( "sync" "git.fsdpf.net/go/db/exp" "git.fsdpf.net/go/req" ) func NewVirtualResource(res req.Resource, code string, table exp.SQLExpression, opts ...Option) req.Resource { pRes, ok := res.(*resource) if !ok { panic("resx.NewVirtualResource: res 必须是 resx.New 构造出来的 req.Resource") } r := &resource{ container: pRes.container, conn: pRes.conn, historyRoles: pRes.historyRoles, initOnce: &sync.Once{}, uuid: code, code: code, name: code, table: code, isResVirtual: true, virtualTable: table, primarykey: "id", } for _, opt := range opts { opt(r) } return r }