繁体   English   中英

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

[英]Linq to Sql - Create DB and How to query from it?

我使用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

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;

要查询数据库表,您无需编写字符串命令并调用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... > LINQ to SQL Classes Add New Item... LINQ to SQL Classes 然后,您需要在Server Explorer连接到数据库,展开Tables并将所需的表拖到设计器窗口中。 Visual Studio自动生成从DataContext派生的新类,该类对您的数据库myTable (例如,具有诸如myTable类的myTable )。

LINQ to SQL MSDN页面

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

但是,您可以在运行时使用ExecuteQuery创建一个定义良好的数据库架构,并像往常一样通过拖放操作在开发计算机上使用相同的现有数据库架构来生成LinqToSQL DataContext。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM