linq - 是否有等效于 DataContext 类的 LINQPad?

标签 linq linq-to-sql linqpad

我刚刚开始使用 LINQPad,到目前为止我喜欢它,但我遇到的大多数 LINQ TO SQL 教程都使用了由 Visual Studio 生成的 DataContext 类,用于持久更新等。我对 LINQ TO SQL 也很陌生所以我的问题是 LINQPad 中的以下等效项是什么(如果有的话)...

MyDbDataContext db = new MyDbDataContext();

...

db.SubmitChanges();

最佳答案

简短回答:您不需要自己创建 DataContext。 LINQPad有很多 sample ,看看它们。

当您将 LINQPad 连接到数据库时,它会为您创建 DataContext。 DataContext 的表 ( Table<T> ) 和 SubmitChanges()可作为本地成员使用。

例如,LINQPad 的默认“C# 表达式”模式你可以只写:

from p in Person
where p.Name == "Joe"
select p.Address

在 LINQPad 的“C# 语句”模式下:
var query = from p in Person
            where p.Name == "Joe"
            select p.Address;

query.Dump(); // Dump() shows results below

Person joe = query.First();
joe.Name = "Peter";
SubmitChanges();

joe.Dump(); // shows joe's values under the previous query results

LINQPad Dump()扩展方法非常有用,可以在任何对象或集合上调用(在 LINQPad 的语句模式下)以显示以下结果。

请注意,您甚至不需要连接到数据库即可使用 LINQPad。您可以使用内存中集合:
int[] numbers = new[] { 1, 2, 3, 4, 5 };
numbers.Where(n => n > 3).Select(n => n * 2).Dump();

事实上,你甚至不需要使用 LINQ 来使用 LINQPad。它也可以很好地用作片段编译器。

关于linq - 是否有等效于 DataContext 类的 LINQPad?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/852687/

相关文章:

c# - IQueryable 扩展方法的语法是否流畅?

c# - 具有多个联接的 LINQ to SQL 加载

c# - InvalidCastException 将字符串转换为 DateTime

c# - 如何使用 LINQ 在函数中定义返回类型?

c# - LINQ 外连接有重复项

entity-framework - 我可以获取 LinqPad 创建的 DbContext 吗?

sql - 连接表并投影到新模型中

C# Linq 如何比较两个字符串并报告第一个不同于 '?' 通配符的不同字符

c# - 仅使用 Linq 简化 foreach 和 Any()

linq - 如何强制 sqlmetal 保持字段名称大小写?