我产生2类是这样的:如何正确设计嵌套类?
public class mPromotionDetail
{
public long PromotionDetailId { get; set; }
public long PromotionHeaderId { get; set; }
public long PromotionTypeId { get; set; }
public string PromotionTypeName { get; set; }
public string VendorCode { get; set; }
public string VendorName { get; set; }
public bool Active { get; set; }
public List<mPromotionDetailArticle> RequestDetailArticles { get; set; }
public static List<mPromotionDetail> Get(long PromotionDetailId = 0, long PromotionHeaderId = 0, long PromotionTypeId = 0, string VendorCode = "", bool Active = true)
{
try
{
Hashtable htParam = new Hashtable();
htParam.Add("@PromotionDetailId", PromotionDetailId);
htParam.Add("@PromotionHeaderId", PromotionHeaderId);
htParam.Add("@PromotionTypeId", PromotionTypeId);
htParam.Add("@VendorCode", VendorCode);
htParam.Add("@Active", Active);
DataSet ds = DB.ExecuteSP_Ds("udsp_GetPromotionDetail", htParam);
return ds.Tables[0].AsEnumerable().Select(row => new mPromotionDetail
{
PromotionDetailId = row["PromotionDetailId"],
PromotionHeaderId = row["PromotionHeaderId"],
PromotionTypeId = row["PromotionTypeId"],
PromotionTypeName = row["PromotionTypeName"],
VendorCode = row["VendorCode"],
VendorName = row["VendorName"],
Active = row["active"],
RequestDetailArticles = mPromotionDetailArticle.Get(PromotionDetailId: Shared.NtL(row["PromotionDetailId"]), Active: true)
}).ToList();
}
catch (Exception ex)
{
throw ex;
}
}
}
public class mPromotionDetailArticle
{
public long PromotionDetailArticleId { get; set; }
public long PromotionDetailId { get; set; }
public string ArticleCode { get; set; }
public string ArticleDescription { get; set; }
public long Qty { get; set; }
public string UoM { get; set; }
public decimal NormalPrice { get; set; }
public decimal SpecialPrice { get; set; }
public bool Active { get; set; }
public static List<mPromotionDetailArticle> Get(long PromotionDetailArticleId = 0, long PromotionDetailId = 0, long PromotionHeaderId = 0, bool Active = true)
{
try
{
Hashtable htParam = new Hashtable();
htParam.Add("@PromotionDetailArticleId", PromotionDetailArticleId);
htParam.Add("@PromotionDetailId", PromotionDetailId);
htParam.Add("@PromotionHeaderId", PromotionHeaderId);
htParam.Add("@Active", Active);
DataSet ds = DB.ExecuteSP_Ds("udsp_GetPromotionDetailArticle", htParam);
return ds.Tables[0].AsEnumerable().Select(row => new mPromotionDetailArticle
{
PromotionDetailArticleId = row["PromotionDetailArticleId"],
PromotionDetailId = row["PromotionDetailId"],
ArticleCode = row["ArticleCode"],
ArticleDescription = row["ArticleDescription"],
Qty = row["Qty"],
UoM = row["UoM"],
NormalPrice = row["NormalPrice"],
SpecialPrice = row["SpecialPrice"],
Active = row["active"]
}).ToList();
}
catch (Exception ex)
{
throw ex;
}
}
}
注意ExecuteSP_Ds
只是叫我的SQL SP并返回DataSet
。 这工作得很好。但是如果mPromotionDetail.Get
返回很多行(例如:1000行),这意味着将执行同样多的时间。
有没有什么方法可以更合适和更有效地设计这些?
谢谢
你应该阅读关于设计模式,坚实的原则,这些都是开始的好地方。 –