在class设计中应该如何正确使用属性类型
How should property types be used correctly in class design
有两个 classes - 例如商店和产品
public class Shop
{
public int ShopId {get;set;}
public string ShopName {get;set;}
public ICollection Products {get;set;}
}
public class Product
{
public int ProductId {get;set;}
public string ProductName {get;set;}
public Shop Shop {get;set;}
}
在产品 class 的上述代码中,何时以及为何(如果我们应该)使用
public Shop Shop {get;set;}
而不是
public int ShopId {get;set;}
反之亦然?
后者是用于DTO,另一个映射到数据库吗?
所以我真的很困惑为什么以及什么时候应该使用哪个。我希望有人为我澄清这一点。
这归结为你如何使用这种关系的目的。如果您只想存储数据(保存到数据库,序列化为 JSON),那么您应该使用 ShopId。如果你要在某些业务逻辑中使用商店,你应该选择商店,因为你不想每次都一次又一次地加载父商店。
有两个 classes - 例如商店和产品
public class Shop
{
public int ShopId {get;set;}
public string ShopName {get;set;}
public ICollection Products {get;set;}
}
public class Product
{
public int ProductId {get;set;}
public string ProductName {get;set;}
public Shop Shop {get;set;}
}
在产品 class 的上述代码中,何时以及为何(如果我们应该)使用
public Shop Shop {get;set;}
而不是
public int ShopId {get;set;}
反之亦然?
后者是用于DTO,另一个映射到数据库吗?
所以我真的很困惑为什么以及什么时候应该使用哪个。我希望有人为我澄清这一点。
这归结为你如何使用这种关系的目的。如果您只想存储数据(保存到数据库,序列化为 JSON),那么您应该使用 ShopId。如果你要在某些业务逻辑中使用商店,你应该选择商店,因为你不想每次都一次又一次地加载父商店。