ホームページ データベース mysql チュートリアル LINQ to Sql系列二 简单查询和联接查询

LINQ to Sql系列二 简单查询和联接查询

Jun 07, 2016 pm 05:44 PM
linq お問い合わせ 単純 シリーズ 参加する

LINQ to Sql系列二 简单查询和联接查询 这一篇文章主要总结LINQ to sql的简单查询(单表查询)和联接查询(多表查询) 单表查询 需求是我们要输出TClass表中的结果。使用了from…in…select语句,代码如下: SimpleQuery(){ using (L2SDBDataContext db = new L2

LINQ to Sql系列二 简单查询和联接查询

这一篇文章主要总结LINQ to sql的简单查询(单表查询)和联接查询(多表查询)

单表查询

需求是我们要输出TClass表中的结果。使用了from…in…select语句,代码如下:

SimpleQuery() { using (L2SDBDataContext db = new L2SDBDataContext()) { var query = from tc in db.TClasses { ClassID=tc.ClassID, ClassName=tc.ClassName }; Console.WriteLine(); int i = 1; foreach (var item in query) { Console.WriteLine(,i,item.ClassID,item.ClassName); i++; } } }

注意:这里没有用select tc,而是定义了一个新的匿名类型是因为性能的考虑,后面性能优化的部分会讲到。

输出结果:

l2s06

多表查询

多表查询,也可以称为联接查询,香港服务器,需要通过外键联接多张表才能查询到我们想要的结果,现在的需求是某个班级及这个班级相关学生的信息。实现这个需求有两种方法,网站空间,一种是内联接,另一种方法是外联接,下面是通过内联接查询的代码。

Query_InnerJoin() { using (L2SDBDataContext db = new L2SDBDataContext()) { var query = from s in db.TStudents join c in db.TClasses on s.ClassID equals c.ClassID { ClassID = s.ClassID, ClassName = c.ClassName, Student = new { Name = s.Name, StudentID = s.StudentID } }; foreach (var item in query) { Console.WriteLine(, item.ClassID, item.ClassName, item.Student.Name); } } }

运行结果:

l2s07

外联接代码:

Query_OutJoin() { using (L2SDBDataContext db = new L2SDBDataContext()) { var query = from s in db.TStudents join c in db.TClasses on s.ClassID equals c.ClassID into gc from gci in gc.DefaultIfEmpty() { ClassID = s.ClassID, ClassName = gci.ClassName, Student = new { Name = s.Name, StudentID = s.StudentID } }; foreach (var item in query) { Console.WriteLine(, item.ClassID, item.ClassName, item.Student.Name); } } }

注意:outer join时必须将join后的表into到一个新的变量中,然后调用这个对象的DefaultIfEmpty方法。

运行结果与内联接相同。

posted on

,虚拟主机
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Xuexin.com で学歴を確認する方法 Xuexin.com で学歴を確認する方法 Mar 28, 2024 pm 04:31 PM

Xuexin.com で学歴を確認する方法

12306 過去のチケット購入記録の確認方法 過去のチケット購入記録の確認方法 12306 過去のチケット購入記録の確認方法 過去のチケット購入記録の確認方法 Mar 28, 2024 pm 03:11 PM

12306 過去のチケット購入記録の確認方法 過去のチケット購入記録の確認方法

Xiaomi 15シリーズの完全なコードネームが明らかに:Dada、Haotian、Xuanyuan Xiaomi 15シリーズの完全なコードネームが明らかに:Dada、Haotian、Xuanyuan Aug 22, 2024 pm 06:47 PM

Xiaomi 15シリーズの完全なコードネームが明らかに:Dada、Haotian、Xuanyuan

Apple携帯電話でアクティベーション日を確認する方法 Apple携帯電話でアクティベーション日を確認する方法 Mar 08, 2024 pm 04:07 PM

Apple携帯電話でアクティベーション日を確認する方法

Outlook が接続試行を要求する [修正] Outlook が接続試行を要求する [修正] Mar 13, 2024 am 09:22 AM

Outlook が接続試行を要求する [修正]

WebSocket 接続用に HAProxy を構成する方法 WebSocket 接続用に HAProxy を構成する方法 Mar 20, 2024 pm 03:51 PM

WebSocket 接続用に HAProxy を構成する方法

Oracle を使用してテーブルがロックされているかどうかをクエリするにはどうすればよいですか? Oracle を使用してテーブルがロックされているかどうかをクエリするにはどうすればよいですか? Mar 06, 2024 am 11:54 AM

Oracle を使用してテーブルがロックされているかどうかをクエリするにはどうすればよいですか?

Huawei Mate 60シリーズ、新しいAI排除+イメージアップグレード、秋のプロモーションを楽しむのに最適な時期 Huawei Mate 60シリーズ、新しいAI排除+イメージアップグレード、秋のプロモーションを楽しむのに最適な時期 Aug 29, 2024 pm 03:33 PM

Huawei Mate 60シリーズ、新しいAI排除+イメージアップグレード、秋のプロモーションを楽しむのに最適な時期

See all articles