我正在通过实现 IDbSet 接口来实现 FakeDataSet 类。作为实现这个接口的一部分,我必须实现 Find 方法。我所有的实体类都有一个 Guid 类型 Id 列。我正在尝试为此 FakeDbSet 类实现 Find 方法,但很难以通用方式编写它。以下是我编写此方法的尝试。
public class FakeDataSet<T> : IDbSet<T> where T: class, new()
{
// Other methods for implementing IDbSet interface
public T Find(params object[] keyValues)
{
var keyValue = (Guid)keyValues.FirstOrDefault();
return this.SingleOrDefault(m => m.Id == keyValue); // How can I write this
}
}
由于它不知道 Id 属于 Guid 类型,因此我在 m.Id 调用时遇到编译错误。
“T”不包含“Id”的定义,并且找不到接受“T”类型的第一个参数的扩展方法“Id”(您是否缺少 using 指令或程序集引用?)
关于如何实现这一点的任何想法?