我有这个班级
class abstract EntityBase
{
public abstract int Id {get; set; }
}
现在,我更改了我的linq2sql生成的用户表类(为Id设置覆盖)
public partial class User: EntityBase, INotifyPropertyChanging, INotifyPropertyChanged
{
...
public override int Id {...}
...
}
然后,我有另一个具有此功能的模板助手类
public static T SingleOrDefault(System.Linq.Expressions.Expression<Func<T, bool>> func)
{
System.Data.Linq.DataContext oDataContext = null;
T retData = GetAll(out oDataContext).SingleOrDefault(func);
if (retData != null)
{
retData.CurrentDataContext = oDataContext;
}
return retData;
}
我像这样使用它
Helper<EntityBase>.SingleOrDefault(t => t.Id == 3);
我得到:类成员 EntityBase`2.Id未映射 。问题是它使用来自EntityBase的Id而不是来自User类,所以我的问题是我如何为此构造相应的lambda表达式,以便它可以从用户类引用Id。 希望我很清楚。
感谢。