这不会起作用:
Func<DAL.Activity, DateTime> f =
activity => activity.S_vrijeme;
using (var ctx = new GMDB())
{
var timestamp =
ctx
.Set<DAL.Activity>()
.Select<T, DateTime>(f)
.Max();
return timestamp;
}
......我不知道为什么。
Visual Studio输出这些错误,我无法找到解决方法:
cannot convert from 'System.Func<GM.DAL.Activity,System.DateTime>' to 'System.Func<T,int,System.DateTime>'
Instance argument: cannot convert from 'System.Data.Entity.DbSet<GM.DAL.Activity>' to 'System.Linq.ParallelQuery<T>'
'System.Data.Entity.DbSet<GM.DAL.Activity>' does not contain a definition for 'Select' and the best extension method overload 'System.Linq.ParallelEnumerable.Select<TSource,TResult>(System.Linq.ParallelQuery<TSource>, System.Func<TSource,int,TResult>)' has some invalid arguments
噢,顺便说一句,你们谷歌搜索给了我一些废话。可能我不知道如何搜索这些基于表达式的东西,因为我是新手。
答案 0 :(得分:4)
我认为你在这里传递了错误的泛型类型。这应该有效:
var timestamp = ctx.Set<DAL.Activity>().Select(f).Max();