Linq to SQL DataContext:如何加载数据

本文关键字:加载 数据 何加载 to SQL DataContext Linq | 更新日期: 2023-09-27 17:52:13

(我是全新的Linq to SQL)我正在创建一个与数据库非常密切合作的web应用程序,我正在寻找最快和连接时间高效的模型,并相信Linq to SQL就是这样。我正在使用c#/。net/Visual Studio 2010

为了简单起见,我有一个web .aspx页面包含一些asp文本框。我想给他们的文本值从SQL数据通过Linq到SQL对象。我还有一个名为dataclass的文件。在设计视图中添加了一个表的DBML。到目前为止,我在我的网页代码后面的代码是:

DataClassesDataContext db = new DataClassesDataContext(getConnectionString);
var table = from t in db.MyTable
            where t.PK == 2
            select new { t.col1, t.col2, t.col3};
db.Connection.Open();
db.  // What's the best way of loading the object?
db.Connection.Close();

如何访问列值?还是把它绑定到一个数据表?如果有,怎么做?

myTextBox1.Text = table.???col1.value;

Linq to SQL DataContext:如何加载数据

您不需要打开或关闭连接。LinqToSql为你抽象了这些

一旦创建了查询,就可以执行它并使用SingleOrDefault()作为对象检索行。

using (var db = new DataClassesDataContext(getConnectionString))
{
    var query = from t in db.MyTable
                where t.PK == 2
                select new { t.col1, t.col2, t.col3};
    var myObject = query.SingleOrDefault();
}

您还可以使用lambda表示法来简化此操作:

using (var db = new DataClassesDataContext(getConnectionString))
{
    var myObject = db.MyTable.SingleOrDefault(t => t.PK == 2 )
}

要访问对象,您可以直接访问列,因为它们已映射到相应的属性:

myTextBox1.Text = myObject.col1;

常见的方法是调用方法来执行查询(ToArray, ToList, First, Single等)或在foreach中枚举它。

例如:

var query = from t in db.MyTable
            where t.PK == 2
            select new { t.col1, t.col2, t.col3};
var result = query.ToArray(); // now it contains array of resulting objects
// or enumerate
foreach (var obj in query)
{
    // do stuff with obj
}

使用

myTextBox1.Text = table.FirstOrDefault().col1.ToString();