无法将lambda表达式转换为委托类型(无引用错误)

时间:2018-04-02 12:31:11

标签: c#

我在这里看到了几个答案,但它并没有帮助我解决问题。我有使用System.Linq和使用System.Data.Entity(灰色)。我有:

Movie

它希望我在IGlobalTableRepository中创建它:

export class Movie {
    constructor(private id: number, private movieName: string, private genre: string) {}
}

我在IGlobalTableRepository中有这个:

internal virtual GlobalTable GetGlobalTableById(int newTableId)
{
    return UnitOfWork.GlobalTableRepository.Get(
               x => x.NewTableId == newTableId).FirstOrDefault();
}

但这之后又产生了另一个问题。我在这里坚持选择。

以下是存储库中的一个类:

object Get(Func<object, object> p);

1 个答案:

答案 0 :(得分:0)

问题是方差如何与C#中的代理一起使用。您不能将该lambda用作Func<object, object>,因为它访问的x成员不是object的成员。您需要将lambda表达式的x强制转换为其特定类型。

x => ((MyType)x).Member == foo