gpt4 book ai didi

linq-to-sql - DataContext 何时会打开与数据库的连接?

转载 作者:行者123 更新时间:2023-12-04 15:16:33 25 4
gpt4 key购买 nike

我正在使用 L2S 访问我的 MSSQL 2008 Express 服务器。我想知道 DataContext 何时会打开与数据库的连接?它会在打开连接后立即关闭连接吗?

例如:

var dc = new TestDB();  // connection opened and closed?

dc.SomeTable.InsertOnSubmit(obj); // connection opened and closed?

foreach(var obj in dc.SomeTable.AsEnumerable()) // connection opened and closed?
{
... // connection opened and closed?
}

dc.SubmitChanges(); // connection opened and closed?

最佳答案

当您实际开始枚举并点击 SubmitChanges 时(如果要进行更改),就会建立连接。我不确定在上面的代码中是否只打开并使用了一个连接,但我知道在我提到的那两个地方,您将调用一个连接。

你需要开始调查 LinqPadhow to use itdimecasts .还可以在 Delayed Execution features of Linq 2 Sql 上查看他们的系列

请注意,像这样的 (getTenSomethingElse(s,s,s)) 不会查询数据库,至少在您开始枚举返回值之前不会

partial class MyDataContext
{
// builds the tree to pull data from the db that matches a criteriea and pass it a ctor of another class
public System.Linq.IQueryable<SomethingElse> getSomethingElse(string searchTerm, string searchValue, string orderBy)
{
var items =
from s in
this.Somethings
select new SomethingElse(s);

return items.Where(searchTerm, searchValue).OrderBy(orderBy);
}

// calls the above method but adds take 10 to that tree
public System.Linq.IQueryable<SomethingElse> getTenSomethingElse(string searchTerm, string searchValue, string orderBy)
{
var items =
from s in
this.getSomethingElse(searchTerm, searchValue, orderBy)
select s;

return items.Take(10);
}
}

IDK 关于你,但考虑到正在完成的所有工作,我认为这是相当棒的。

哦顺便说一句,可以在 ScottGu's awesome blog 上找到有关“Where(s,s)”扩展的更多信息

关于linq-to-sql - DataContext 何时会打开与数据库的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1434035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com