我想在字段上加特性checkexist,然后在保存数据时检查字段上有checkexist的,先检查将要保存的数据与数据库中已有数据是否冲突,写了如下代码:
public string CheckExist(T model) { Type t1 = typeof(T); var pInfo = t1.GetProperties().Where(o => o.GetCustomAttribute(typeof(Common.Attributes.CheckExistAttribute)) != null); string temps1=string.empty,temps2=string.empty; foreach (var p in pInfo) { //临时值 temps2=p.GetValue(model,null) GetListBy(u => p.GetValue(u, null).ToString() == p.GetValue(model, null).ToString()); } return ""; }
现在的问题是p.GetValue(u,null)没法用临时值的方法,这个怎么处理,谢谢指导!!!
GetListBy(u => p.Name == p.GetValue(model, null).ToString());
这个可以用LinqKit解决。你下载一个,然后包转一下就行了。具体怎么用忘记了,好久没用EF了。
谢谢,我先试试!
GetListBy里面是什么啊
public List<T> GetListBy(Expression<Func<T, bool>> whereLambda)
@happydaily: 还是放弃Linq to xxx的orm吧,微软都已经放弃改用EF了,只有EF能拯救你,呵呵,Linq to都要具体的值不能识别表达式的
Linq to Entity 最终是要把linq的方法解析成sql语句,连一些很简单的类型转换都不能识别,更别说 C#中的其它方法了,
只能把结果写成比较简单且能识别的 linq 表达示,用LinqKit 是一种方法