这是错误信息,StateText是一个从另一个表得到的值源代码在这。这是从Scmquote实体类引过来的。这个
StatusText可以绑定reparter 但是不能用来做筛选?为什么 ,之前么接触过ef这种 比较懵 求帮助
public string StatusText { get { if (SCMQuoteId == null) return "等待生成询价单"; if (SCMQuoteParityId == null) return "订单已关闭"; return SCMQuote.StatusText; } }
筛选代码
if (ddlState.SelectedItem.Text != "全部") data = data.Where(i => i.StatusText == ddlState.SelectedItem.Text);
你的data是什么?
data就是一个实体类
@我想和这个世界谈谈: 你这样,先用一个变量存一下那个下拉框的text,然后在where里面用那个变量,别直接用下拉框。。。
@顾晓北: 不可以的,还是报错。主要是statusText这个字段是自定义的不是数据库里的 好像不能用 但是可以绑定
@我想和这个世界谈谈: 不在数据库里?你在跟我开玩笑吗???不在数据库里你让ef怎么筛选?
@顾晓北: 所以啊,就想问下能不能根据这个在实体类自定义的字段进行筛选呢?
@我想和这个世界谈谈: 看这个意思,你的这个StatusText也是数据库中的某些字段判断得来的???
@顾晓北:
是的,但是是通过两个表的字段判断出来的! 一部分是直接引用SCMQuote里的状态字段判断还有两个状态是根据图上的字段判断的!
@我想和这个世界谈谈: 那你完全可以在数据库里也这么判断啊。。。数据库本身可以用case when,你找相关的资料不就行了?
@顾晓北: 你意思是在数据库里新加一个字段?
@我想和这个世界谈谈: 理解错误,sqlserver确实可以增加一个没有数据类型定义,根据其他字段得出的字段,比如,一个CreateDate字段是CreateTime的日期部分。但我说的不是这个意思,我的意思是你的if既然也是这个表的其他字段,那么可以用其他思路来做,生成类似case when语句是一种。。。
你自己判断一下也可以,比如:
if(ddlState.SelectedItem.Text==“等待生成询价单”)
data=data.where(i=>i.SCMQuoteId==null)
@顾晓北: 好吧,我再看看,谢谢你的回答。
i.StatusText == ddlState.SelectedItem.Text
左边的只能是数据库字段.不能是自定义属性.
那有什么办法过滤筛选这个自定义属性吗?