2010-07-18 55 views
0

我是LINQ的一名完全新手,所以请裸露我的愚蠢问题。Linq to SQL - 我缺少什么?

使用Visual Studio我创建了一个DBML文件,并从本地数据库向它添加了一个表。这创建了一个名为UserDataContext的数据上下文。然而

UserDataContext db1 = new UserDataContext(); 

,当我尝试查询对阵表我得到::在我的ASPX页面,我可以使用创建数据上下文的实例

var query = from o in db1. 

,并从那里我看不到表.... dbml显示表具有公共访问权限。

任何想法,我已经错过了?

+0

var query = from o in db1 // this will not compile。您忘记了“选择”部分 – zerkms 2010-07-18 13:29:54

+1

如果您发布代码或XML,请**在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码”按钮(101 010)以精确地格式化和语法突出显示它! – 2010-07-18 13:43:13

+0

您是否在尝试编写Linq-to-SQL查询之前编译过该项目?为了让intellisense等起作用,我相信您至少需要编译/构建您的项目 – 2010-07-18 13:44:30

回答

0
UserDataContext db1 = new UserDataContext(); 
var query = from o in db1 
      where o.fieldName = "abc" 
      select p; 
+0

@godz:格式化您的问题,在编辑器中选择它并按下Control-K。 – 2010-07-18 23:26:44

+0

@约翰桑德斯谢谢。 – RedPanda 2010-07-19 01:34:48

0

如果您想查询数据库中的所有表格或表格中的所有列,我认为您会发现this article有用。

另外,正如zerkms在评论中指出的那样,LINQ查询需要一个select语句。如果您查看LINQ查询的desugared形式,它可能会有所帮助 - 它确实帮助我避免了这类错误。

1

您需要事后选择它,所以用 var query = from o in db1

var query = from o in db1 
select o 
+0

不知道为什么这个问题得到了解决,因为它既是错误的,也与问题无关。 – fearofawhackplanet 2010-07-21 08:29:20

1

你有using System.Linq;在你的代码文件的顶部?如果你没有intellisense不会拿起LINQ。

0

我觉得他的要求更多,为什么他不能看到在查询

表有你建立你的解决方案,因为你创建的LINQ到SQL模式,如果你还没有这样做,他们不会出现。

0

确保您的类与您的.dbml文件位于相同的命名空间中。如果您的.dbml位于子目录中,它将继承该子目录作为.dbml命名空间的一部分。