Linq to Sql - 创建数据库以及如何从中查询?

时间:2011-02-25 08:56:15

标签: c# linq-to-sql

我使用Linq创建一个表

PODataContext db = new PODataContext();

String query = "create table myTable(text varchar(20) primary key)";

db.ExecuteCommand(query);

然后我也将数据插入其中。

String insQuery = "insert into myTable values('some text')";

db.ExecuteCommand(insQuery);

我的问题是如何从该表中获取数据?

谢谢 YOHAN

3 个答案:

答案 0 :(得分:1)

var query =from  c in new PODataContext().myTable
            select c;

<强>已更新

不使用对象关系设计器的LINQ to SQL

创建一个名为MyTable的类,并使用Table属性进行装饰。

[Table(Name="myTable")]
public class MyTable

{
    [Column]
    public string Text 

}

然后创建以下类

public class PODataContext : DataContext
  {

   public Table<MyTable> myTables;

    public PODataContext(string connection): base(connection)

    {

    }

}

现在按如下方式查询您的表

var query =from  c in new PODataContext().myTable
            select c;

答案 1 :(得分:1)

要对数据库表进行查询,您不需要编写字符串命令并调用ExecuteQuery方法 - 它仅适用于您无法使用LINQ执行的特定数据库任务。你可以用LINQ做的是写查询,如:

var query = from c in db.myTable
            where c.Id > 5
            select c;

foreach ( var c in query )
    Console.WriteLine( c );

此代码从myTable中获取Id大于5(SELECT * FROM myTable WHERE Id > 5 in SQL)的所有实体,并将它们全部写入控制台。

但要使其工作,您需要为您的数据库创建正确的DataContext。在Visual Studio中执行此操作的最简单方法是Add New Item... - &gt; LINQ to SQL Classes。然后,您需要在Server Explorer中连接到您的数据库,展开Tables并将所需的表拖到设计器窗口。 Visual Studio自动生成从DataContext派生的新类,该类对您的数据库很有用(例如,具有myTable等属性。)

MSDN page for LINQ to SQL

答案 2 :(得分:1)

如果要在运行时更改(或创建!)数据库模式,请注意LinqToSQL也不能在运行时更新它的数据库表示。它只能通过Visual Studio中的Drag-And-Drop或通过命令行使用SQLMetal(一种相当模糊的方法)并重新编译应用程序来更新。

但是,您可以在运行时使用ExecuteQuery创建定义良好的数据库模式,并在开发计算机上使用相同的现有数据库模式,通过拖放生成LinqToSQL DataContext。