首先建立数据上下文和实体类映射,然后使用LINQ语法进行查询、排序、分页等操作,通过SubmitChanges提交增删改。

在C#中使用LINQ to SQL进行数据库查询,首先需要建立数据模型与数据库表的映射关系。它允许你用类似SQL的语法直接在C#代码中操作数据库,使查询更直观、类型安全。
1. 建立数据上下文和实体类
LINQ to SQL的核心是DataContext的子类,用于表示数据库连接和操作入口。每个数据库表对应一个标记为[Table]的实体类。
示例:假设有一个Users表,包含Id、Name、Email字段。
定义实体类:
[Table(Name = "Users")]public class User{ [Column(IsPrimaryKey = true)] public int Id { get; set; }[Column]public string Name { get; set; }[Column]public string Email { get; set; }
}
创建数据上下文:
public class MyDbContext : DataContext{ public Table Users;public MyDbContext(string connectionString) : base(connectionString) { }
}
2. 基本查询语法
通过from ... where ... select结构编写查询,类似于SQL但集成在C#中。
从Users表中查询所有用户:
var query = from u in db.Users select u;
查询名字为"张三"的用户:
var query = from u in db.Users where u.Name == "张三" select u;
查询并投影部分字段(如只取Name和Email):
var query = from u in db.Users where u.Name.Contains("李") select new { u.Name, u.Email };
3. 常用操作示例
LINQ to SQL支持过滤、排序、分页、连接等常见操作。排序:OrderBy、ThenBy等
var sorted = from u in db.Users orderby u.Name select u;
分页:使用Skip和Take
int pageSize = 10;int page = 2;var paged = db.Users.Skip((page - 1) * pageSize).Take(pageSize);
模糊查询:使用Contains、StartsWith
var result = from u in db.Users where u.Email.Contains("@qq.com") select u;
多条件查询:
var result = from u in db.Users where u.Name.StartsWith("王") && u.Id > 5 select u;
4. 执行查询与更新数据
查询不会立即执行,而是延迟加载。调用ToList()、FirstOrDefault()等方法才会触发SQL执行。
获取结果列表:
List users = query.ToList();
获取单条记录:
User user = db.Users.FirstOrDefault(u => u.Id == 1);
插入新记录:
User newUser = new User { Name = "赵六", Email = "zhaoliu@abc.com" };db.Users.InsertOnSubmit(newUser);db.SubmitChanges();
更新记录:
User user = db.Users.FirstOrDefault(u => u.Id == 1);if (user != null){ user.Email = "newemail@abc.com"; db.SubmitChanges();}
删除记录:
User user = db.Users.FirstOrDefault(u => u.Id == 1);if (user != null){ db.Users.DeleteOnSubmit(user); db.SubmitChanges();}
基本上就这些。只要配置好映射和连接,就能用简洁的C#语法完成大多数数据库操作。注意LINQ to SQL适用于简单场景,微软已推荐更现代的Entity Framework作为长期方案。
以上就是C#中如何使用LINQ to SQL进行数据库查询?基本语法是什么?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1440430.html
微信扫一扫
支付宝扫一扫