0
 public class CellValue
{
    double? Max;
    double? Min;
    string  Value;
    string Annotation;
}

    public T GetOne(Expression<Func<T, bool>> predicate)
{
     IQueryable<T> query = this.context.Set<T>();
     return query.FirstOrDefault(predicate);
}

    public class Steel: CellValue{}

    CellValue cell = new CellValue{Max = 0.8, Min = 0.1, Value="test"};
    Steel steel = service.GetOne(t=>t.Max == cell.Max && t.Min == cell.Min && t.Value ==cell.Value && t.Annotation == cell.Annotation);
    //but the object steel is always null. Jush Why?

我检查了我的数据库,但我不知道它总是为空。表达式树和 Lambda 表达式可能是问题所在。

4

1 回答 1

1

“OrDefault”方法为引用类型返回 null,或为值类型返回默认值(例如 int 是值类型,因此它将返回 0)。

于 2012-06-06T14:02:34.637 回答