C# 如何使用NHibernate并保护某些表的数据?

C# 如何使用NHibernate并保护某些表的数据?,c#,nhibernate,C#,Nhibernate,在一个新项目中,我创建了我的类,比如ProductSpecialGroup: ProductSpecialGroup - string Name - IList<Product> Products 在这个项目中,我还必须为已经存在并被更多项目使用的Product表创建映射 有没有办法告诉nhibernate:不要碰这个表,不要更新/删除它,只是从中选择?或者至少我认为我需要检查cascade的配置,以确保myProductSpecialgroup.Products.Clear不会

在一个新项目中,我创建了我的类,比如ProductSpecialGroup:

ProductSpecialGroup 
- string Name
- IList<Product> Products
在这个项目中,我还必须为已经存在并被更多项目使用的Product表创建映射


有没有办法告诉nhibernate:不要碰这个表,不要更新/删除它,只是从中选择?或者至少我认为我需要检查cascade的配置,以确保myProductSpecialgroup.Products.Clear不会创建灾难?

如果在表映射中设置mutable=false,它将视为只读。另外,为了确保您可以将父级的级联设置为无,请使用mutable=false并按照swannee的建议检查级联。除此之外,如果它是关键的,请考虑使用视图或考虑仅授予该表的读取权限。关于级联:关于多对多关系呢,如果级联为“无”,它会保存该关系吗?它不会,因此如果是这样,请继续并允许级联。只要表映射是可变的false,您就是安全的。cascade none只是一个额外的预防措施。同样在cascade上,将其设置为All。所有人都会删除关系,但不会删除多人关系的另一面。相反,如果一个孤儿没有其他关系,那么所有删除孤儿的级联也会删除多个孤儿的另一面。好的,谢谢,这可能是另一个问题,但在多对多关系中,有没有任何方法可以说只是处理关系而不是相关实体的内容?这基本上就是所有人都会做的。它只会影响关系,而不会影响许多关系中的相关实体。