精通LINQ数据访问技术

精通LINQ数据访问技术 pdf epub mobi txt 电子书 下载 2026

出版者:
作者:
出品人:
页数:322
译者:
出版时间:2008-7
价格:49.00元
装帧:
isbn号码:9787115180087
丛书系列:
图书标签:
  • LINQ
  • .NET
  • 编程
  • 计算机
  • 教科书
  • LINQ
  • C#
  • 数据访问
  • 数据库
  • Entity Framework
  • ADO
  • NET
  • 查询
  • 数据操作
  • 编程技术
  • 开发
  • 教程
想要找书就要到 图书目录大全
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

《精通LINQ数据访问技术:基于C#》共13章。第1章至第2章介绍了LINQ的基本语法,如隐型局部变量、Lambda表达式、查询表达式等,详细讲解了LINQ查询的基本子句和操作。第3章至第11章详细介绍了LINQ to SQL、LINQ to Objects、LINQ to DataSet和LINQ to XML 4个组件,用以查询和处理对象数据。第12章至第13章讲解LINQ在ASP.NET Web应用程序和Windows窗体应用程序中的应用,以巩固全书所学习的知识。

好的,这是一份关于技术书籍的简介,内容详尽,力求自然流畅,不包含任何关于《精通LINQ数据访问技术》的内容,旨在展现扎实的专业深度与实践价值。 --- 《高性能并发编程与异步架构实践:从理论基石到工业级应用》 书籍导览:驾驭现代计算的核心挑战 在当今的软件工程领域,单线程处理已成为历史的遗迹。随着多核处理器成为主流,以及用户对响应速度和系统吞吐量的要求日益严苛,并发编程已不再是高级选项,而是构建健壮、高效应用程序的必备技能。然而,并发的引入也带来了臭名昭著的陷阱:竞态条件、死锁、活锁以及资源饥饿。 《高性能并发编程与异步架构实践》是一本深入探究并发原理、设计模式与现代编程语言特性(特别是C和Java环境下的实践)的权威指南。本书旨在为中高级开发者提供一套清晰、实用的框架,帮助他们理解并发的底层机制,并能设计、实现和调试大规模、高吞吐量的并发系统。 第一部分:并发编程的理论基石 本部分将奠定坚实的理论基础,确保读者对并发模型有深刻的理解,而非仅仅停留在 API 的表面调用。 第一章:从串行到并行——范式演进与性能分析 深入解析冯·诺依曼结构下的指令级并行与操作系统级别的进程/线程调度。 区分并行性(Parallelism)与并发性(Concurrency),并探讨两者的权衡。 引入阿姆达尔定律(Amdahl's Law)和古斯塔夫森定律(Gustafson's Law),学习如何准确预测多核环境下的理论加速比。 实践焦点: 使用性能分析工具(如PerfView, VisualVM)识别系统中的串行瓶颈。 第二章:同步原语与内存模型 详细剖析底层硬件如何实现同步:内存屏障(Memory Barriers)和缓存一致性协议(如MESI)。 系统地介绍经典的同步工具:互斥锁(Mutex)、信号量(Semaphore)、读写锁(Reader-Writer Lock)的内部工作原理和适用场景。 重点探讨不同编程语言中内存模型的差异,尤其是C中的`volatile`关键字和Java中的`synchronized`块,阐明它们如何保证指令重排的可见性。 陷阱警示: 分析由内存重排序导致的非预期行为和难以调试的 Bug。 第三章:锁的艺术与反模式 超越基础锁,深入研究细粒度锁定(Fine-Grained Locking)和分段锁(Striped Locking)如何提高并发度。 无锁编程(Lock-Free Programming)导论: 介绍原子操作(Atomic Operations)的概念,如CAS(Compare-and-Swap)循环,以及它们在构建高性能数据结构中的应用。 全面对比基于锁的方案与无锁方案的优缺点,包括死锁发生的概率、资源占用和复杂性管理。 实战案例: 构建一个线程安全的高效计数器和基于CAS的无锁栈。 第二部分:现代异步架构的设计与实现 随着 I/O 密集型应用的爆发,传统的基于线程池的阻塞模型已无法满足效率要求。本部分聚焦于现代异步编程模型如何革新 I/O 密集型和高并发服务的设计。 第四章:事件驱动模型与Reactor模式 深入理解基于事件驱动(Event-Driven)和异步 I/O(AIO)的架构优势。 详细解析Reactor设计模式(包括单线程Reactor、Proactor等变体)在网络编程中的核心作用。 平台聚焦(C): 全面解析`async`/`await`关键字背后的状态机实现机制,理解上下文捕获(Synchronization Context)的陷阱与管理。 平台聚焦(Java): 探讨NIO.2 (Asynchronous I/O) 和Netty等框架如何实现高效的零拷贝和事件循环。 第五章:任务并行库(TPL)与并发集合 系统讲解任务(Task)的生命周期、调度机制以及TPL的异常传播机制。 并行数据处理: 深入剖析PLINQ(Parallel LINQ)的内部工作原理,如何安全地并行化集合操作,以及何时应该避免使用它(如涉及外部副作用时)。 并发集合的精妙之处: 对比`ConcurrentDictionary`、`ConcurrentQueue`等并发集合的内部实现(例如,它们如何使用内部锁或乐观并发控制来避免全局锁定),并指导读者何时使用它们替代手动加锁的普通集合。 第六章:隔离与通信:CSP模型与Actor框架 介绍通信顺序进程(Communicating Sequential Processes, CSP)模型,重点关注Go语言中的Channel概念及其在其他语言中的实现思路。 Actor模型实践: 详细介绍基于Actor的消息传递范式(如Akka、Proto.Actor)。探讨Actor如何通过隔离状态(State Isolation)来消除共享内存的并发难题。 应用场景比较: 对比TPL/Async/Await、CSP和Actor三种主要并发模型在微服务、实时数据流处理和复杂状态管理中的适用性。 第三部分:调试、性能优化与系统级并发 理论和实现需要被验证和调优。本部分关注在真实生产环境中管理和优化并发系统的实践技能。 第七章:并发系统的调试与诊断 传授诊断死锁、活锁和资源争用的系统化方法。 高级工具使用: 教授如何使用线程转储(Thread Dumps)和堆栈跟踪来冻结和分析瞬时并发错误。 性能剖析: 识别并解决并发执行中的线程争用(Contention)问题,如何通过跟踪锁等待时间来量化并发效率的损失。 第八章:设计健壮的并发 API 探讨如何设计面向消费者的、易于组合(Composable)的并发接口。 深入讲解可取消性(Cancellability)的设计,如何安全地在异步链条中传递取消信号(CancellationTokenSource或类似机制)。 错误处理: 统一处理并行操作中抛出的异常,确保系统在部分失败时仍能优雅降级或正确恢复。 第九章:分布式系统中的并发与一致性 将本地并发概念扩展到分布式环境:探讨分布式锁的实现(如基于Redis或ZooKeeper)。 引入一致性模型(如强一致性、最终一致性)和CAP理论,理解在网络分区下的权衡。 实战应用: 结合分布式事务和消息队列,设计一个确保数据在多个服务间状态一致的高并发事务流程。 总结与读者展望 《高性能并发编程与异步架构实践》不仅仅是API手册的堆砌,它是一套解决现代软件复杂度问题的思维工具箱。通过本书的学习,开发者将能够自信地构建出不仅速度快,而且结构清晰、易于维护的并发应用程序,彻底摆脱“并发是魔法”的恐惧,真正掌控现代计算的底层力量。本书的最终目标是让读者从“知道如何写异步代码”提升到“知道如何设计健壮的并发架构”。

作者简介

目录信息

读后感

评分

优点:内容结构组织的很好,由浅入深,从C#3.0的新特性讲起(当然只是简单的介绍,因为本书的重点是LINQ)。LINQ介绍、LINQ to SQL、LINQ to Object、Dataset和XML。没有对所有方法做示例说明,但包含了大部分常用的方法。 缺点:有史以来看的技术书籍里面,这本可堪称错误最...

评分

优点:内容结构组织的很好,由浅入深,从C#3.0的新特性讲起(当然只是简单的介绍,因为本书的重点是LINQ)。LINQ介绍、LINQ to SQL、LINQ to Object、Dataset和XML。没有对所有方法做示例说明,但包含了大部分常用的方法。 缺点:有史以来看的技术书籍里面,这本可堪称错误最...

评分

优点:内容结构组织的很好,由浅入深,从C#3.0的新特性讲起(当然只是简单的介绍,因为本书的重点是LINQ)。LINQ介绍、LINQ to SQL、LINQ to Object、Dataset和XML。没有对所有方法做示例说明,但包含了大部分常用的方法。 缺点:有史以来看的技术书籍里面,这本可堪称错误最...

评分

优点:内容结构组织的很好,由浅入深,从C#3.0的新特性讲起(当然只是简单的介绍,因为本书的重点是LINQ)。LINQ介绍、LINQ to SQL、LINQ to Object、Dataset和XML。没有对所有方法做示例说明,但包含了大部分常用的方法。 缺点:有史以来看的技术书籍里面,这本可堪称错误最...

评分

优点:内容结构组织的很好,由浅入深,从C#3.0的新特性讲起(当然只是简单的介绍,因为本书的重点是LINQ)。LINQ介绍、LINQ to SQL、LINQ to Object、Dataset和XML。没有对所有方法做示例说明,但包含了大部分常用的方法。 缺点:有史以来看的技术书籍里面,这本可堪称错误最...

用户评价

评分

这本书《精通LINQ数据访问技术》,对我而言,是一次从“点”到“面”的升华。在读这本书之前,我对LINQ的理解,仅仅停留在一些零散的查询语句,感觉它很方便,但缺乏系统性的认识。这本书则从根源上,系统地介绍了LINQ的核心概念和工作原理。我印象特别深刻的是,书中对“表达式树”(Expression Tree)的深入讲解,它让我明白了LINQ是如何将我们编写的代码转换成一棵树状的数据结构,然后由查询提供者去解析和执行。这使得LINQ能够被翻译成各种形式的查询语言,例如SQL,从而实现了跨平台的数据访问。书中还详细介绍了LINQ的“延迟执行”(Deferred Execution)和“即时执行”(Immediate Execution)机制,这对于理解LINQ的性能至关重要。我曾经因为对这两个概念的误解,导致程序出现性能问题,但读了这本书后,我才真正明白了其中的奥秘,并找到了解决之道。书中还列举了大量的实际应用场景,比如如何使用LINQ进行复杂的过滤、排序、分组、连接操作,以及如何利用LINQ to SQL和Entity Framework来简化数据库访问。这些内容都非常实用,让我能够立即将所学应用到实际项目中。这本书的深度和广度,绝对是市面上少有的,它不是那种浅尝辄止的技术手册,而是真正能够让你“精通”LINQ的指南。

评分

《精通LINQ数据访问技术》这本书,给我带来的最大提升,在于我能够更自如地在各种数据操作场景下,游刃有余地运用LINQ。我曾经总是被繁琐的SQL语句,或者冗长的C#集合操作代码所困扰,但这本书为我打开了一扇新的大门。书中关于LINQ的连接(Join)操作的讲解,简直是淋漓尽致,它不仅覆盖了内连接、左外连接、右外连接、全外连接等SQL中常见的连接方式,还演示了如何使用LINQ轻松实现这些操作,并且代码的可读性远超SQL。同时,书中对分组(GroupBy)操作的深入探讨,让我能够轻松地实现复杂的数据聚合,比如按多个字段进行分组,或者在分组后进行聚合计算,这些在传统的编程方式下,往往需要层层嵌套的循环和条件判断,而LINQ的GroupBy,让这一切变得异常简单。我非常赞赏作者在书中对于LINQ的“链式调用”风格的推崇,它使得代码的逻辑流程一目了然,如同阅读一篇优美的文章。此外,书中还非常详细地讲解了LINQ的“投影”(Projection)操作,也就是Select子句,它不仅可以用来选择特定的字段,还可以用来创建新的匿名类型或者自定义类型,并且在创建新类型时,还能进行复杂的计算和转换,这极大地提升了数据处理的灵活性。这本书的每一个例子都经过了精心设计,能够真实地反映LINQ在实际开发中的应用,让我能够学以致用,并在我的项目中迅速看到了成效。

评分

《精通LINQ数据访问技术》这本书,给我带来的最显著的改变,是我能够以前所未有的方式去思考和处理数据。作者以一种极其专业和深入的方式,讲解了LINQ在.NET生态系统中的核心地位和强大能力。书中关于LINQ的“查询语法”(Query Syntax)和“方法语法”(Method Syntax)的详细对比,以及它们之间的相互转换,让我深刻理解了这两者在编译器层面是如何被处理的,以及它们各自的优势所在。对于“表达式树”(Expression Trees)的讲解,更是让我看到了LINQ的“灵魂”所在,它如何将我们编写的Lambda表达式解析成一棵树,然后由查询提供者去解读这棵树,并最终生成可执行的代码。这让我对LINQ in SQL这样的技术,有了更清晰的认识,原来它就是通过解析表达式树,然后生成SQL语句。书中还提到了LINQ的“过滤”(Where)、“排序”(OrderBy)、“跳过”(Skip)、“获取”(Take)等操作,并详细讲解了这些操作在不同查询提供者下的具体实现和性能考量。特别是对于大数据量下Skip和Take操作的性能优化建议,让我受益匪浅。书中还列举了大量的实际应用场景,比如如何使用LINQ进行复杂的过滤、排序、分组、连接操作,以及如何利用LINQ to SQL和Entity Framework来简化数据库访问。这些内容都非常实用,让我能够立即将所学应用到实际项目中。这本书的深度和广度,绝对是市面上少有的,它不是那种浅尝辄止的技术手册,而是真正能够让你“精通”LINQ的指南。

评分

这本《精通LINQ数据访问技术》对我来说,绝对是一次颠覆性的学习体验。在阅读这本书之前,我对LINQ的理解仅仅停留在一些基础的查询语法,觉得它只是.NET Framework里一个略显花哨的语法糖,并没有真正意识到它在简化数据操作、提升开发效率方面的巨大潜力。然而,这本书从一开始就以一种深入浅出的方式,循序渐进地剖析了LINQ的核心概念。它不仅仅是罗列语法,更重要的是讲解了LINQ背后的查询提供者(Query Provider)工作机制,比如LINQ to Objects、LINQ to SQL、LINQ to XML等等,并且详细阐述了查询表达式(Query Expression)和方法语法(Method Syntax)之间的转换关系,以及它们各自的优缺点和适用场景。作者通过大量精心设计的代码示例,将抽象的概念具象化,让我能够清晰地看到,原本需要写上十几行甚至几十行C#代码才能完成的数据过滤、排序、分组、连接等操作,在LINQ的加持下,可以变得如此简洁、优雅,并且可读性极强。特别是关于延迟执行(Deferred Execution)和即时执行(Immediate Execution)的讲解,让我豁然开朗,终于理解了为什么有时候查询结果会出乎意料,以及如何有效地控制查询的执行时机,避免不必要的性能损耗。书中关于匿名类型、扩展方法、Lambda表达式等.NET特性在LINQ中的应用,也讲得非常到位,让我对这些.NET中非常重要的概念有了更深刻的认识,不再仅仅是会用,而是理解了“为什么”这么用。这本书的价值,绝不仅仅在于教会我如何写出LINQ查询,更在于它构建了我对数据访问层面的一种全新的思考方式,让我能够以更高效、更面向对象的方式来处理各种数据源。

评分

阅读《精通LINQ数据访问技术》的过程,就像是经历了一场思维的“重塑”。在读这本书之前,我对LINQ的理解,仅仅是停留在一些基础的查询语法,觉得它只是一个方便的工具,并没有真正理解它背后的强大力量。这本书,则从更深层次,剖析了LINQ的底层机制和设计理念。作者以一种非常系统和严谨的方式,介绍了LINQ的“查询提供者”(Query Provider)模型,让我明白了LINQ是如何通过不同的查询提供者,来适配各种不同的数据源,比如内存中的集合(LINQ to Objects)、关系型数据库(LINQ to SQL, Entity Framework)、XML文档(LINQ to XML)等等。这种通用性,极大地简化了跨数据源的数据访问,让我能够用一套统一的编程模型来处理各种数据。我尤其欣赏书中关于“延迟执行”(Deferred Execution)和“即时执行”(Immediate Execution)的讲解,这让我深刻理解了LINQ查询的执行时机,以及如何通过合理地使用ToList()、ToArray()等方法来控制查询的执行,从而优化程序性能。书中还深入探讨了LINQ的“表达式树”(Expression Trees)的概念,它让我明白了LINQ是如何将我们编写的代码转换成一种数据结构,然后由查询提供者去解析和执行,这种“代码即数据”的理念,极大地拓展了我对编程的理解。这本书的专业性和深度,让我对LINQ有了全新的认识,它不仅仅是一个语法糖,而是一个强大的数据访问框架。

评分

《精通LINQ数据访问技术》这本书,为我打开了数据访问的新视野,让我不再局限于传统的SQL语句或者ADO.NET的繁琐操作。作者以一种极其严谨和系统的方式,阐述了LINQ在.NET生态系统中的地位和作用。书中关于LINQ的“查询提供者”(Query Provider)概念的讲解,让我明白,LINQ的强大之处在于它的通用性,它可以适用于各种不同的数据源,而不仅仅是数据库。比如,LINQ to Objects可以直接操作内存中的集合,LINQ to SQL和Entity Framework可以操作关系型数据库,LINQ to XML可以操作XML文档,甚至还有LINQ to LDAP、LINQ to SharePoint等等。这种通用性,极大地简化了跨数据源的数据访问。我尤其喜欢书中关于“惰性求值”(Deferred Execution)的详细解释,它让我明白了为什么很多LINQ查询在定义时并不会立即执行,而是在真正需要结果的时候才会触发。这对于性能优化至关重要,因为它允许我们构建复杂的查询管道,然后只在最后一次性地执行,避免了不必要的中间计算。书中还深入探讨了LINQ的“即时求值”(Immediate Execution)操作,如ToList()、ToArray()、Count()等,并解释了它们如何触发查询的执行。这种对执行时机的精细控制,让我能够更好地管理资源,提高程序的效率。这本书的专业水准,让我对LINQ有了全新的认识,它不仅仅是一个语法糖,而是一个强大的数据访问框架。

评分

阅读《精通LINQ数据访问技术》的过程,就像是经历了一场思维的“洗礼”。这本书的叙述方式非常特别,它不是简单地罗列API,而是通过一个个引人入胜的场景,引导读者去思考数据访问的本质问题。作者善于利用类比和生动形象的比喻,将LINQ那些看似复杂的概念,例如委托、表达式树(Expression Tree)等,解释得通俗易懂。我尤其喜欢书中关于表达式树的章节,它详细讲解了表达式树的构成、遍历以及如何通过它来构建动态查询。这让我明白,LINQ的强大之处在于它能够将我们编写的代码转换成一种数据结构,然后由查询提供者去解析和执行,这种“代码即数据”的理念,极大地拓展了我对编程的理解。书中还探讨了LINQ在处理不同数据源时的一些细微差别,比如在处理集合(LINQ to Objects)时,查询是直接在内存中进行的,而在处理数据库(LINQ to SQL/EF)时,查询则会被转换成SQL语句在数据库服务器上执行。这种区分让我对性能优化有了更精准的认识。而且,书中对于LINQ的一些高级特性,比如自定义查询操作符(Custom Query Operators)、并行LINQ(PLINQ)的介绍,也让我大开眼界。PLINQ的部分,尤其让我看到了提升大数据量处理性能的希望,书中关于如何正确使用PLINQ,以及需要注意的一些陷阱,都做了非常细致的说明。这本书不仅仅是教我写代码,更是培养了我一种“解题思路”,让我能够更宏观地看待数据访问问题,并找到最优雅、最高效的解决方案。

评分

这本《精通LINQ数据访问技术》的阅读体验,可以说是一次从“知其然”到“知其所以然”的飞跃。在读这本书之前,我仅仅是将LINQ当作一个方便的工具,知道如何使用它的基本语法来查询数据。但这本书,通过对其内部机制的深入解析,让我明白了LINQ的强大之处并非仅仅是语法的简洁,而是它背后所蕴含的强大抽象能力。例如,书中关于LINQ的“查询语法”(Query Syntax)和“方法语法”(Method Syntax)的详细对比,以及它们之间的相互转换,让我深刻理解了这两者在编译器层面是如何被处理的,以及它们各自的优势所在。对于表达式树(Expression Trees)的讲解,更是让我看到了LINQ的“灵魂”所在,它如何将我们编写的Lambda表达式解析成一棵树,然后由查询提供者去解读这棵树,并最终生成可执行的代码。这让我对LINQ in SQL这样的技术,有了更清晰的认识,原来它就是通过解析表达式树,然后生成SQL语句。书中还提到了LINQ的“过滤”(Where)、“排序”(OrderBy)、“跳过”(Skip)、“获取”(Take)等操作,并详细讲解了这些操作在不同查询提供者下的具体实现和性能考量。特别是对于大数据量下Skip和Take操作的性能优化建议,让我受益匪浅。这本书的深度和广度,绝对是业内顶尖的,它不仅仅是教授LINQ的使用,更是让你理解LINQ的设计哲学。

评分

《精通LINQ数据访问技术》这本书,与其说是一本技术书籍,不如说是一位经验丰富的前辈,在细致地指导我如何真正地“驾驭”数据。我印象最深刻的是,它并没有急于给出各种“炫酷”的语法技巧,而是花了大篇幅去讲解LINQ的底层设计理念和实现原理。例如,关于IEnumerable<T>和IQueryable<T>接口的深入剖析,让我彻底理解了它们在LINQ查询过程中的作用差异,以及为什么IQueryable<T>能够实现将LINQ查询“翻译”成SQL语句,从而在数据库层面进行优化。书中对于查询转换器(Query Translator)和查询执行器(Query Executor)的讲解,更是让我对LINQ的“魔法”有了更清晰的认知,原来这一切并非无迹可循,而是遵循着一套严谨的逻辑。我曾经在实际项目中遇到过LINQ查询性能瓶颈的问题,当时只能靠猜测和试错来解决,但读了这本书后,我才明白,很多性能问题源于对查询执行过程的误解。比如,书中关于“N+1”查询问题的详细分析和多种解决方案,让我受益匪浅,立刻就意识到了我在过去的代码中可能存在的类似隐患,并找到了改进的方法。此外,书中对LINQ to SQL和Entity Framework这两个ORM框架在LINQ集成方面的对比和应用,也提供了一个非常宝贵的视角,让我能够根据不同的项目需求,选择最适合的工具。这本书的专业性和深度,绝对是市面上少有的,它不是那种“速成”型的技术手册,而是需要读者静下心来,去理解、去思考、去实践,才能真正体会到它的价值。

评分

《精通LINQ数据访问技术》这本书,不仅仅是一本技术书籍,更像是一个数据处理的“瑞士军刀”的使用指南,让我看到了LINQ在处理各种复杂数据场景下的强大能力。我曾经在工作中,为了实现一些复杂的数据统计和报表功能,花费了大量的时间和精力去编写冗长的SQL语句,或者在C#代码中进行大量的循环和判断。但是,这本书通过对LINQ的深度剖析,让我看到了另一种更优雅、更高效的解决方案。书中关于LINQ的“分组”(GroupBy)操作的讲解,让我惊叹不已。它不仅可以轻松地实现按单个字段分组,还可以实现按多个字段分组,并且在分组后进行聚合计算,例如求和、平均值、最大值、最小值等。这在传统的编程方式下,往往需要多层嵌套的循环,而LINQ的GroupBy,让这一切变得异常简洁。此外,书中还详细介绍了LINQ的“连接”(Join)操作,它能够轻松地实现各种类型的数据库连接,并且代码的可读性极高。我尤其喜欢书中关于LINQ的“投影”(Projection)操作,也就是Select子句,它不仅可以用来选择特定的字段,还可以用来创建新的匿名类型或者自定义类型,并且在创建新类型时,还能进行复杂的计算和转换,这极大地提升了数据处理的灵活性。这本书的每一个例子都经过了精心设计,能够真实地反映LINQ在实际开发中的应用,让我能够学以致用,并在我的项目中迅速看到了成效。

评分

人邮的绿皮系列,当然还有黄皮,呵呵

评分

当时为学Linq买的书,现在应该用的不多了吧,感觉这类书还是因需阅读比较好

评分

以前我还挺喜欢这种中文转内销的微软技术书籍,直到大学看到外文的。

评分

人邮的绿皮系列,当然还有黄皮,呵呵

评分

当时为学Linq买的书,现在应该用的不多了吧,感觉这类书还是因需阅读比较好

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.wenda123.org All Rights Reserved. 图书目录大全 版权所有