---
title: "init(_:transaction:)"
framework: swiftdata
role: symbol
role_heading: Initializer
path: "swiftdata/query/init(_:transaction:)"
---

# init(_:transaction:)

Create a query with a SwiftData fetch descriptor.

## Declaration

```swift
@MainActor @preconcurrency init(_ descriptor: FetchDescriptor<Element>, transaction: Transaction? = nil) where Result == [Element]
```

## Parameters

- `descriptor`: A SwiftData.FetchDescriptor.
- `transaction`: A transaction to use for user interface changes that result from changes to the fetched results.

## See Also

### Creating a query

- [init(_:animation:)](swiftdata/query/init(_:animation:).md)
- [init(filter:sort:animation:)](swiftdata/query/init(filter:sort:animation:).md)
- [init(filter:sort:order:animation:)](swiftdata/query/init(filter:sort:order:animation:)-1qfoj.md)
- [init(filter:sort:order:animation:)](swiftdata/query/init(filter:sort:order:animation:)-3qovd.md)
- [init(filter:sort:transaction:)](swiftdata/query/init(filter:sort:transaction:).md)
- [init(filter:sort:order:transaction:)](swiftdata/query/init(filter:sort:order:transaction:)-2bx9a.md)
- [init(filter:sort:order:transaction:)](swiftdata/query/init(filter:sort:order:transaction:)-8q7vs.md)
