Skip to content

Commit 2ea4aa8

Browse files
committed
throw better exception from BuildPredicate
1 parent 15a0f6f commit 2ea4aa8

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

src/GraphQL.EntityFramework/Where/ExpressionBuilder.cs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,18 @@ static Expression ProcessList(string path, Comparison comparison, string?[]? val
115115
var listItemType = property.PropertyType.GetGenericArguments().Single();
116116

117117
// Generate the predicate for the list item type
118-
var subPredicate = (Expression) typeof(ExpressionBuilder<>)
119-
.MakeGenericType(listItemType)
118+
var genericType = typeof(ExpressionBuilder<>)
119+
.MakeGenericType(listItemType);
120+
var buildPredicate = genericType
120121
.GetMethods(BindingFlags.Public | BindingFlags.Static)
121-
.Single(_ => _.Name == "BuildPredicate" &&
122-
_.GetParameters().Length == 5)
122+
.SingleOrDefault(_ => _.Name == "BuildPredicate" &&
123+
_.GetParameters().Length == 5);
124+
if (buildPredicate == null)
125+
{
126+
throw new($"Could not find BuildPredicate method on {genericType.FullName}");
127+
}
128+
129+
var subPredicate = (Expression) buildPredicate
123130
.Invoke(
124131
new(),
125132
[

0 commit comments

Comments
 (0)