Orchardcms 更新Orchard中的多个数据库行

Orchardcms 更新Orchard中的多个数据库行,orchardcms,Orchardcms,如何更新Orchard中的一组行 我有一组客户ID。我想为所有这些客户将IsActive字段设置为No 我使用ContentManager还是IRepository?我必须循环并更新每一行,还是有一种方法可以更新一条语句中的所有行 谢谢。如果您有自己的表,而该表未连接到任何ContentPart-请坚持使用IRepository内容管理器用于管理内容项 在Orchard中,IRepository实现的方式是,您需要遍历所有客户 我不建议使用NHibernate Hibernate查询语言(HQL

如何更新Orchard中的一组行

我有一组客户ID。我想为所有这些客户将IsActive字段设置为No

我使用ContentManager还是IRepository?我必须循环并更新每一行,还是有一种方法可以更新一条语句中的所有行


谢谢。

如果您有自己的表,而该表未连接到任何ContentPart-请坚持使用
IRepository
<代码>内容管理器用于管理内容项


在Orchard中,
IRepository
实现的方式是,您需要遍历所有客户

我不建议使用NHibernate Hibernate查询语言(HQL)进行“批量更新”,这会让事情变得更加困难,当Orchard将其核心升级到NHibernate 3.2或更高版本时,速度会快得多,请参阅以获取更多信息

如果您仍然希望执行update语句,您可以在自定义存储库中使用HQL,那么存储库基类中有一个受保护的属性,它将返回NHibernate ISession。使用此NHibernate会话,您可以调用CreateQuery()

请记住使用您的类名和属性名称,而不是表名

Query query = session.createQuery("update Customers set IsActive = :isActive" +
                                  "where Id in (1,2,3,4,5,6,));
query.setParameter("isActive", "false");
int result = query.executeUpdate();