我有一个非常基本的问题,但它正在努力!!!!
我创建了一个变量来检查我的数据表检查,看看是否已经存在使用我的页面控件ID的项目。如果它,我想警告我的用户他们已经选择了页面颜色!
我的问题是如何检查此变量是否为空!
var qry = from x in db.DT_Control_ColourPalette_PageColors
where x.PageControlID == int.Parse(HF_CPID.Value)
select new
{
x.PageControlID,
};
我认为这个论点是对的吗?
if (qry !=null)
答案 0 :(得分:17)
据我所知,查询表达式不会返回null。如果没有结果,您只需获得IQueryable<T>
,但内部没有T
。
您可以使用它来查看结果集中是否有任何内容:
if (qry.Any())
答案 1 :(得分:6)
假设应返回单个值 - 如果是,则:
var qry = (from x in db.DT_Control_ColourPalette_PageColors
where x.PageControlID == int.Parse(HF_CPID.Value)
select new
{
x.PageControlID,
}).FirstOrDefault();
if(qry != null)
{
// do stuff
}
答案 2 :(得分:0)
var qry = from x in db.DT_Control_ColourPalette_PageColors
where x.PageControlID == CheckValue(HF_CPID.Value)
select new
{
x.PageControlID,
};
private int CheckValue(sting str)
{
if(!string.IsNullOrEmpty(str))
{
return int.Parse(str);
}
else
return 0;//or your default value you want to return
}
答案 3 :(得分:0)
我打算写这个作为对另一个答案的回应,但它真的太大了。这或多或少是对Nathan的回答。
如果结果既是单个值又是单个属性,那么我会有一些评论。
FirstOrDefault
和SingleOrDefault
。有时与隐含断言结果是“一个或全无”与“第一件事或无事件”有关。var result = db.DT_Control_ColourPalette_PageColors
.Where(x => x.PageControlID == int.Parse(HF_CPID.Value))
.Select(x => x.PageControlID)
.SingleOrDefault();
if (result != null)
{
//...
}