100分,这个函数应该用什么样的返回类型?

LinuxCard 2016-03-02 07:19:07
mvc5 ef6

两个实体,分别表示当前库存,和历史库存
stock
{
int goods_id;//商品id
int goods_number;//商品数量
}

HistoryStock
{
datetime dt; //历史日期
int goods_id; //商品id
int goods_number //商品数量

}

系统每天晚上把当前库存插入历史库存表

现在要查历史库存,传入一个日期,函数要根据日期来判断是从当前表中读取,还是从历史表中读取

var m=getdata(dt);//dt就是传入的日期
var mm=from p in m
where p.goo........
select p;

..........


function getdata(datetime dt)
{
if(dt=当天)
{
var q=from p in db.stock
select p;
return q;
}
else
{
//从历史记录中查询
var qq=from p in db.HistoryStock
where p.dt==dt
select p;
return qq;

}


}


现在问题是,getData函数用什么样的返回类型比较好呢?

如果用list,那么返回一整个表,可能数据很多,我想到最后一刻才去从数据库里取数据



...全文
156 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
臆断返回来行 --> 臆断返回类型 搞产品设计的人,也是有一定的道道的。不是按照编程的人的那种喜欢随便拼凑的方式来描述。从你编程角度,你一会儿觉得怎么省事怎么写,一会儿又想怎么酷怎么写。而设计业务逻辑的人,如果它在描述需求时连“历史库存”和“库存”两个概念都说明不清楚,那么它就别搞产品设计了。所以它可能会说“现在要查库存,传入一个日期........” 而不会去说“现在要查历史库存,传入一个日期........”。这样才在概念上是一致的,这样的产品人员才可能跟程序员配合好。
  • 打赏
  • 举报
回复
“现在要查历史库存,传入一个日期........” 这个描述跟代码是完全不一致的。要么是代码是错的,要么就是描述是错的。如果描述是错的,那么程序员也没有理由随便胡写一个代码,而应该给产品设计人员指出业务描述有错误;如果是代码是错的,那么其实根据你的代码来臆断返回来行,其实就被你误导了。 至于说你的代码,既不像js也不像c#,随便涂鸦的,就不多纠结什么语法了。先把原则搞通,带着原则去学习 c# 会少走一些弯路。 如果(与编程无直接关系的)设计上是混乱的,那么代码就更加混乱。光是关心代码,就是纸上谈兵了。
  • 打赏
  • 举报
回复
你返回的是IQueryable类型数据,那根本不会执行查询,也就是你但我m参数还没有真正与数据库进行交互
Poopaye 2016-03-02
  • 打赏
  • 举报
回复
返回什么要看你怎么用:datetime dt; //历史日期 如果这个类型没用,或者后续无需区分stock/HistoryStock,返回IEnumerable<stock>
江南小鱼 2016-03-02
  • 打赏
  • 举报
回复
返回HistoryStock类型呗,如果查询当前库存,大不了dt都赋值当天。 你使用的时候,根据dt是不是当天,不就知道是历史库存还是当前库存了么
  • 打赏
  • 举报
回复
public class HistoryStock: Stock { datetime dt; //历史日期 }
cheng2005 2016-03-02
  • 打赏
  • 举报
回复
返回一个接口IStock

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧