C# 为什么为一对多关系属性设置保护集
我有客户和订单实体。在使用fluent hibernate为customer定义类时,为什么需要为Orders列表属性指定“protected set”C# 为什么为一对多关系属性设置保护集,c#,nhibernate,fluent-nhibernate,nhibernate-mapping,C#,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,我有客户和订单实体。在使用fluent hibernate为customer定义类时,为什么需要为Orders列表属性指定“protected set” public virtual IList<Order> Orders { get; protected set; } 公共虚拟IList命令{get;protected set;} 您无需在setter上指定受保护的。这样做是一个很好的设计 如果在setter上未指定访问修饰符,它将隐式地具有与属性本身相同的访问修饰符(publi
public virtual IList<Order> Orders { get; protected set; }
公共虚拟IList命令{get;protected set;}
您无需在setter上指定受保护的。这样做是一个很好的设计
如果在setter上未指定访问修饰符,它将隐式地具有与属性本身相同的访问修饰符(public
)。当setter是public时,类的任何使用者都可以修改Orders
属性并将其设置为另一个实例
public class Customer
{
public virtual IList<Order> Orders { get; set; }
}
var customer = new Customer();
customer.Orders = new List<Order>();
public class Customer
{
public virtual IList<Order> Orders { get; protected set; }
}
var customer = new Customer();
//customer.Orders = new List<Order>(); // error: can't modify property
var orderCount = customer.Orders.Count; // this will trigger lazy-loading