Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhancement: Enable the Anonymous Types and Query Objects on QueryMultiple #1062

Closed
mikependon opened this issue Aug 22, 2022 · 1 comment
Closed
Assignees
Labels
enhancement New feature or request fixed The bug, issue, incident has been fixed.

Comments

@mikependon
Copy link
Owner

Describe the enhancement

Currently, the QueryMultiple operation is type-coupled and even to the parameter passing. Let us say we have classes named Order and OrderItem and we would like to query all the orders and its corresponding order items via order Id, we do the following simple code.

using (var connection = new SqlConnection(...))
{
	var orderId = 10045;
	var result = connection.QueryMultiple<Order, OrderItem>(
		o => o.Id == orderId, oi => oi.OrderId == orderId);
	var order = result.Item1.FirstOrDefault();
	var orderItems = result.Item2.ToList();
}

Like with many other operations, it would be better to make it more dynamic by considering the passing of the anonymous types like below.

using (var connection = new SqlConnection(...))
{
	var orderId = 10045;
	var result = connection.QueryMultiple<Order, OrderItem>(
		new { Id = orderId }, new { OrderId = orderId });
	var order = result.Item1.FirstOrDefault();
	var orderItems = result.Item2.ToList();
}

And/or Query Objects (i.e.: QueryField and QueryGroup).

using (var connection = new SqlConnection(...))
{
	var orderId = 10045;
	var result = connection.QueryMultiple<Order, OrderItem>(
		new QueryField("Id", orderId), new QueryField("OrderId", orderId));
	var order = result.Item1.FirstOrDefault();
	var orderItems = result.Item2.ToList();
}
@mikependon mikependon added the enhancement New feature or request label Aug 22, 2022
@mikependon mikependon self-assigned this Aug 22, 2022
@mikependon mikependon pinned this issue Aug 26, 2022
mikependon added a commit that referenced this issue Aug 29, 2022
@mikependon mikependon added the fixed The bug, issue, incident has been fixed. label Aug 29, 2022
@mikependon
Copy link
Owner Author

The fixes to this will be available on the next version > RepoDB v1.10.12.

@mikependon mikependon unpinned this issue Aug 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request fixed The bug, issue, incident has been fixed.
Projects
None yet
Development

No branches or pull requests

1 participant