一尘不染

找不到查询模式的实现

c#

在我的Silverlight应用程序中,我试图使用LINQ创建数据库连接。首先,我向SQL类添加一个新的LINQ,并将名为“
tblPersoon”的表拖到其中。

然后在我的服务文件中,尝试执行以下查询:

[OperationContract]
public tblPersoon GetPersoonByID(string id)
{
    var query = (from p in tblPersoon where p.id == id select p).Single();

但是在tblPersoon,它给了我以下错误。

找不到源类型“ SilverlightApplication1.Web.tblPersoon”的查询模式的实现。找不到“哪里”。

即使我尝试以下操作:

var query = (from p in tblPersoon select p).Single();

它给我一个错误,提示找不到“选择”!

我的表的生成类的代码可以在这里找到:http :
//pastebin.com/edx3XRhi

是什么原因造成的,我将如何解决?

谢谢。


阅读 395

收藏
2020-05-19

共1个答案

一尘不染

tblPersoon执行IEnumerable<T>吗?您可能需要使用以下方法进行操作:

var query = (from p in tblPersoon.Cast<Person>() select p).Single();

在以下情况下 通常会发生这种错误( 找不到查询模式的实现 ):

  • 您缺少LINQ名称空间用法(using System.Linq
  • 您要查询的类型未实现 IEnumerable<T>

编辑

除了查询类型(tblPersoon)而不是property之外tblPersoons,还需要一个上下文实例(定义tblPersoons属性的类),如下所示:

public tblPersoon GetPersoonByID(string id)
{
    var context = new DataClasses1DataContext();
    var query = context.tblPersoons.Where(p => p.id == id).Single();
    // ...
2020-05-19