我有这门课
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 而不是来自 User 类的 Id,所以我的问题是如何为此构造相应的 lambda 表达式,以便它可以引用来自用户类的 Id。希望我很清楚。
谢谢。