陷入错误:
Cannot use a lambda expression as an argument to a dynamically dispatched operation without first casting it to a delegate or expression tree type
Run Code Online (Sandbox Code Playgroud)
举一个简单的例子,让我们尝试使用实体框架从数据库中获取一个对象,而不是实际知道它的类型:
private DbContext db;
private dynamic test(dynamic entity)
{
return db.Set(entity.GetType()).First(x => x.Id == entity.Id);
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
使用泛型来执行此操作,而不是dynamic:
private DbContext db;
private T test<T>(T entity)
where T : BaseEntity
{
return db.Set<T>().First(x => x.Id == entity.Id);
}
Run Code Online (Sandbox Code Playgroud)
有一个BaseEntity具有一个Id特性,以确保给定的实体有一个ID.
| 归档时间: |
|
| 查看次数: |
6255 次 |
| 最近记录: |