Linq to SQL DataContext:如何加载数据?

Iva*_*van 3 c# asp.net datacontext linq-to-sql

(我对Linq to SQL完全不熟悉)我正在创建一个与数据库密切配合的Web应用程序,我正在寻找最快且连接时间有效的模型,并且相信Linq to SQL就是这样.我正在使用C#/.Net4/Visual Studio 2010

为简单起见,我有一个包含许多asp文本框的web .aspx页面.我想将他们的Text值从SQL数据通过Linq提供给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();
Run Code Online (Sandbox Code Playgroud)

然后,我如何访问列值?或者我将它数据绑定到数据表?如果是这样,怎么样?

myTextBox1.Text = table.???col1.value;
Run Code Online (Sandbox Code Playgroud)

Den*_*aub 15

您无需打开或关闭连接.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();
}
Run Code Online (Sandbox Code Playgroud)

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

using (var db = new DataClassesDataContext(getConnectionString))
{
    var myObject = db.MyTable.SingleOrDefault(t => t.PK == 2 )
}
Run Code Online (Sandbox Code Playgroud)

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

myTextBox1.Text = myObject.col1;
Run Code Online (Sandbox Code Playgroud)


aru*_*lam 0

使用

myTextBox1.Text = table.FirstOrDefault().col1.ToString();
Run Code Online (Sandbox Code Playgroud)