1

我有这门课

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。希望我很清楚。

谢谢。

4

0 回答 0