C# 无法将lambda表达式转换为Func<;T、 TResult>;在尝试绕过IQueryable时<;T>;
所以我早些时候发布了这个 我一直在为Silverlight开发AsyncRepo,所以我只是被困在一个小地方 该代码仅用于解释…滚动至底部查看罪犯代码 我对回购的定义如下:C# 无法将lambda表达式转换为Func<;T、 TResult>;在尝试绕过IQueryable时<;T>;,c#,linq,entity-framework-4,linq-to-entities,wcf-data-services,C#,Linq,Entity Framework 4,Linq To Entities,Wcf Data Services,所以我早些时候发布了这个 我一直在为Silverlight开发AsyncRepo,所以我只是被困在一个小地方 该代码仅用于解释…滚动至底部查看罪犯代码 我对回购的定义如下: public interface IAsyncRepository<T> where T : class { void GetById(int id, Action<T> callback); void GetAllFromQuery(Func<MyEntities, IQue
public interface IAsyncRepository<T> where T : class
{
void GetById(int id, Action<T> callback);
void GetAllFromQuery(Func<MyEntities, IQueryable<Product>> funcquery, Action<IList<Calculator>> callback)
}
public void GetById(int id, Action<Product> callback)
{
MyEntities dat = new MyEntities(new Uri(..url..));
var query = from c in dat.Products where c.ID == id select c;//WATCH THIS
allQuery = new DataServiceCollection<Product>(dat);
allQuery.LoadAsync(query);
allQuery.LoadCompleted += (obj, evt) =>
{
if (allQuery == null)
{
callback(null);
}
else
{
callback(allQuery.FirstOrDefault());
}
};
}
repo.GetAllFromQuery(
x => from p in x.Products where p.ID > 5 select p,
y => Assert.IsTrue(y.Count > 0));
这给了我:
无法从“lambda表达式”转换为System.Func'
我会真正尊重给我任何解决方案的人。这给了我一整天的时间 编辑:好的,现在打字错误已经纠正了,试试非查询版本(我认为这更简单):
编辑:好的,现在打字错误已经纠正了,试试非查询版本(我认为它更简单):
阿格!很抱歉这是一个错误的简化。。。打字错误修正。当我在visual studio中悬停
p
时,它会给我?范围变量
而不是巧妙地计算类型。@giddy:MyEntities.Products的类型是什么?非查询版本有效吗?不!还没有运气。当我输入x.Products时。。在那之前我都有智能感知。。在那之后,intellisense进行了一次折腾。但是没有。还是给我同样的错误。我是不是弄脏了这些类型。。或者定义错误..@giddy:您是否缺少使用System.Linq的代码>位于包含此代码的文件的顶部?当您尝试编译非查询版本时,错误消息是什么?@jon yes。我确实有System.Ling
…错误(1)无效参数。。。(2) 无法将lambda表达式转换为。。。。(与之前相同的错误没有更改)可能是此调用在Silverlight测试应用程序中,而我没有对Entity Frameworkarg的引用!很抱歉这是一个错误的简化。。。打字错误修正。当我在visual studio中悬停p
时,它会给我?范围变量
而不是巧妙地计算类型。@giddy:MyEntities.Products的类型是什么?非查询版本有效吗?不!还没有运气。当我输入x.Products时。。在那之前我都有智能感知。。在那之后,intellisense进行了一次折腾。但是没有。还是给我同样的错误。我是不是弄脏了这些类型。。或者定义错误..@giddy:您是否缺少使用System.Linq的代码>位于包含此代码的文件的顶部?当您尝试编译非查询版本时,错误消息是什么?@jon yes。我确实有System.Ling
…错误(1)无效参数。。。(2) 无法将lambda表达式转换为。。。。(与之前相同的错误没有更改)可能是此调用在Silverlight测试应用程序中,我没有实体框架点的参考,任何人都可以对此设计发表评论,无论是ok还是I可以做得更好。任何人都可以对此设计发表评论,无论是ok还是I可以做得更好。
repo.GetAllFromQuery(
x => from p in x.Products where p.ID > 5 select p,
y => Assert.IsTrue(y.Count > 0));
repo.GetAllFromQuery(
x => x.Products.Where(p => p.ID > 5),
y => Assert.IsTrue(y.Count > 0));