C#检查字符串包含带下划线的单词

我想其中包含“所有项目_at_ ”或“ PV_ ”,但d.Nom.Contains($"PV_")并d.Nom.Contains($"_AT_")获得也只包含“AT”和“光伏发电”项目


 IQueryable<DocumentMetadata> docPV = NHibernateSession.Current.Query<DocumentMetadata>()

           .Where(d => d.IdEntiteRattachement == missionId

                       && d.Nom.Contains($"PV_")

                       && d.Desactive == false)

           .OrderByDescending(d => d.DateDerniereModif);


        IList<DocumentMetadata> docAR = NHibernateSession.Current.Query<DocumentMetadata>()

           .Where(d => d.IdEntiteRattachement == missionId

                       && d.Nom.Contains($"_AT_")

                       && d.Desactive == false)

           .OrderByDescending(d => d.DateDerniereModif).ToList();


回首忆惘然
浏览 306回答 2
2回答

www说

在SQL中,下划线(和百分比)是通配符。NHibernate不会自动转义它们,因为您可以使用它们。后面.Contains是SQL的LIKE。转义通配符取决于基础DBMS。试试这个:d.Nom.Contains("\\_AT\\_")(它可能不起作用。请参阅数据库引擎的文档。)
打开App,查看更多内容
随时随地看视频慕课网APP