一个查询方法如下:
public NewsGroupModels GetAll(DateTime nitiji, string category, string meigara)
{
var re = new List<NewsModels>();
var q = from c in T_news
join ca in T_master on c.category equals ca.code
where ca.code==1
join mei in T_master on c.category equals mei.code
where mei.code == 2
where c.code_date == nitiji && c.category == category && c.kanjiMei == meigara
orderby c.code_time descending
select new { c, ca.value}; var list = q.ToList();
NewsModels newsModels = null;
foreach (var news in list)
{
newsModels = new NewsModels();
newsModels.news = news.c;
//newsModels.news.category = news.value;
re.Add(newsModels);
} NewsGroupModels models = new NewsGroupModels();
models.modelsList = re; models.yesterday = nitiji.AddDays(-1).ToString();
models.tomorrow = nitiji.AddDays(1).ToString(); models.categoryList = GetMaster(CodeDef.CATEGORY);
models.meigaraList = GetMaster(CodeDef.MEIGARA);
return models;
}
1.如果category或者meigara为空的时候,我就不想加这两个条件,请问下面的where里应该怎么写?where c.code_date == nitiji && c.category == category && c.kanjiMei == meigara
2.
select new { c, ca.value};我现在想写成select new { c, ca.value,mei.value};这样写报错了,请问这个select部分支持别名么?
public NewsGroupModels GetAll(DateTime nitiji, string category, string meigara)
{
var re = new List<NewsModels>();
var q = from c in T_news
join ca in T_master on c.category equals ca.code
where ca.code==1
join mei in T_master on c.category equals mei.code
where mei.code == 2
where c.code_date == nitiji && c.category == category && c.kanjiMei == meigara
orderby c.code_time descending
select new { c, ca.value}; var list = q.ToList();
NewsModels newsModels = null;
foreach (var news in list)
{
newsModels = new NewsModels();
newsModels.news = news.c;
//newsModels.news.category = news.value;
re.Add(newsModels);
} NewsGroupModels models = new NewsGroupModels();
models.modelsList = re; models.yesterday = nitiji.AddDays(-1).ToString();
models.tomorrow = nitiji.AddDays(1).ToString(); models.categoryList = GetMaster(CodeDef.CATEGORY);
models.meigaraList = GetMaster(CodeDef.MEIGARA);
return models;
}
1.如果category或者meigara为空的时候,我就不想加这两个条件,请问下面的where里应该怎么写?where c.code_date == nitiji && c.category == category && c.kanjiMei == meigara
2.
select new { c, ca.value};我现在想写成select new { c, ca.value,mei.value};这样写报错了,请问这个select部分支持别名么?
解决方案 »
- 控件获得焦点问题
- 问一个经典的winform下treeview的checkbox问题
- c#调用sdk时,求教回调函数如何处理
- 我被折磨了很久,C#
- 用C# 开发 soap 的客户端 可以吗,怎么实现
- net_lover(【孟子E章】) 渔恩进来哦
- 请教高手,在DataGridView中,保存数据时出现"表达式过于复杂"的问题如何解快?
- 对EDM(Entity Data Model)进行查询哪种比较好?
- winform下鼠标点击一次值++事件
- 最紧急求助!在线等待,请问5张光碟的VS.NET的Windows组件更新光碟是哪张?
- 有谁弄过ClickOnce?
- 递归造成的 “System.StackOverflowException”类型的异常
var q = from c in T_news
join ca in T_master on c.category equals ca.code
where ca.code==1
join mei in T_master on c.category equals mei.code
where mei.code == 2
orderby c.code_time descending
select new { c, mei, ca.value};
var list = string.IsNullOrEmpty(category) || string.IsNullOrEmpty(meigara)
? q.ToList()
: q.Where(r => r.c.code_date == nitiji && r.c.category == category && r.c.kanjiMei == meigara).ToList();