Open JStarkl opened 1 year ago
I did a quick hack for my current purposes, and the "HasFilter"-Attribute perfectly does it's Job
EF.Revers.POCO.v3.ttinclude in the method [IndexModelBuilder]:
From:
if (indexesForName.Count > 1)
sb.Append(" }");
sb.Append(")"); // Close bracket for HasIndex()
sb.Append(isEfCore5Plus ? ".HasDatabaseName(\"" : ".HasName(\"");
sb.Append(indexName);
sb.Append("\")");
To:
if (indexesForName.Count > 1)
sb.Append(" }");
sb.Append(")"); // Close bracket for HasIndex()
//>>>
if (indexName == "IX_person_email_person_id_primary" | indexName == "IX_person_phone_person_id_primary")
{
sb.Append(".HasFilter(\"([primary_flag]=(1) AND [inactive_flag]=(0))\")");
}
//<<<
sb.Append(isEfCore5Plus ? ".HasDatabaseName(\"" : ".HasName(\"");
sb.Append(indexName);
sb.Append("\")");
Your if statement should change from a single | to a double ||
if (indexName == "IX_person_email_person_id_primary" || indexName == "IX_person_phone_person_id_primary")
I have indices with filter values, but those won't be generated (SQLServer)
An index looks like this:
Will generate:
But the expected result is:
I checked EF.Reverse.POCO.v3.ttinclude and it seems this is not implemented.
I currently use version 3.8.0 with a EFCore7 Model
Best regards, Jürgen