C# Linq到SQL DataContext:如何加载数据?

C# Linq到SQL DataContext:如何加载数据?,c#,asp.net,linq-to-sql,datacontext,C#,Asp.net,Linq To Sql,Datacontext,(我对Linq to SQL完全陌生)我正在创建一个与数据库密切配合的web应用程序,我正在寻找最快速、连接时间最高效的模型,并相信Linq to SQL就是这样。我正在使用C#/.Net4/visualstudio 2010 为了简单起见,我有一个web.aspx页面,其中包含许多asp文本框。我想通过Linq to SQL对象从SQL数据中给出它们的文本值。我还有一个名为DataClasses.dbml的文件,在设计视图中添加了一个表。到目前为止,我的网页代码中的代码是: DataClass

(我对Linq to SQL完全陌生)我正在创建一个与数据库密切配合的web应用程序,我正在寻找最快速、连接时间最高效的模型,并相信Linq to SQL就是这样。我正在使用C#/.Net4/visualstudio 2010

为了简单起见,我有一个web.aspx页面,其中包含许多asp文本框。我想通过Linq to SQL对象从SQL数据中给出它们的文本值。我还有一个名为DataClasses.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;
使用


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

创建查询后,可以执行查询并使用
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 = myObject.col1;
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
}