LAURINBURG, N.C. — Dan McCready is used to this.

“Y’all know this isn’t an easy race for a Democrat,” the candidate for North Carolina’s 9th District said, swatting away an army of gnats swarming attendees at a fish fry Friday night.

Having been on the campaign trail for two years, McCready has met many of these people before. He doesn’t look twice at the opposition tracker filming him from across the street, and he’s even perfected a line about just how long this campaign has been.

“I had three kids when this started, and now I’ve got four,” he said.

McCready lost this district, which President Donald Trump carried by 11 points in 2016, by less than a thousand votes last fall. But because of alleged election fraud tied to his 2018 GOP opponent’s campaign, he’s still at it, running against a different Republican in a redo election to be held Sept. 10.