网页模板免费下载网站蚌埠高端网站建设
网页模板免费下载网站,蚌埠高端网站建设,住房和城乡建设部网站,电子印章在线制作网站System.Data虽然不引人关注#xff0c;但在.NET中#xff0c;System.Data对于各种关系数据库的连接是非常重要的。System.Data也被称为ADO.NET#xff0c;其前身是ActiveX Data Objects。System.Data提供了通过的框架#xff0c;在她的基础上.NET数据驱动应用可以被构建。这… System.Data虽然不引人关注但在.NET中System.Data对于各种关系数据库的连接是非常重要的。System.Data也被称为ADO.NET其前身是ActiveX Data Objects。System.Data提供了通过的框架在她的基础上.NET数据驱动应用可以被构建。这个框架还提供了数据驱动程序应遵守的一些约定。Connectionscommandsdata readers都是双继承。每个分别实现了来自于DbConnection, DbCommandDbDataReader的基础功能。他们也实现了抽象接口IDbConnection, IDbCommand, 和IDbDataReader这使得它们能够支持模拟场景和非传统数据源。在下文描述的基础类中都基于双继承方案。虽然connection strings一般被认为是字符串但有些工具却认为它是继承自DbConnectionStringBuilder的对象。它能够处理数据库连接字符串的特定解析并帮助开发人员更好的理解特定数据库的可用设置。在.NET中System.Data早于ORM框架出现但是通过实现DbDataAdapter和DbCommandBuilder它提供了生成sql的通用方法。它可以被直接使用也能和普通数据集及类型化数据集组合使用。如果你想找到一个抽象工厂模式的例子你可以看下DbProviderFactory。它的自雷提供了connections, commands, command parameters, command builders, data adapters。其中包含了你需要的全部关于数据访问的需求而不仅仅是数据库的逻辑。接口的问题在上文中已经提到System.Data依赖于双继承。当我们想添加新的方法时这将带来问题。例如异步操作被加入到在.NET 4.5的DbCommand之中。但是却无法将他们添加到匹配的IDbCommand接口之中因为这将是一个破坏性的改变。这意味着您不能同时使用异步操作和容易模拟的抽象接口。微软本可以在.NET Core 1.0中重新设计抽象接口以使得其能够与抽象类相匹配Java通过JDBC的接口已经实现了。然而这却会使得.NET Framework共用源码变得困难。如果默认接口方法能够出现在C#8.0中在理论上这一特征可以用来以向后兼容的方式调整接口。但是在.NET Framework中并不兼容因为默认接口方法只是.NET Core的特征。它也不能使用较老的编译器和其他.NET语言。DbDataReader.Get()中的字符串重载我们对于System.Data在.NET Core 3.0之中的第一个特征是DbDataReader的Get()方法之中能够传递列名。长期以来人们一直抱怨这个接口不能按名称引用列。这意味着你需要使用这个模式 。1reader.GetInt32(reader.GetOrdinal(columnName))一个明显的(对某些人来说也是早就应该有的)简化方法是提供字符串重载。1reader.GetInt32(columnName)这已经在Oracles Connector/NET和MySqlConnector中实现。处于性能考虑该方法不会被标记为虚方法从而允许JIT编译器轻松地内联它。也是由于上述原因新的方法集不会添加到IDbDataReader中。XmlDataDocument如果你了解XmlDataDocument的历史这似乎是一个奇怪的选择。在2010年发布的.NET 4.0之中其已经被标记为过时的并提出了XmlDataDocument在未来的版本中将会被删除的警告。现在使用它的原因是一些WinForms和WPF应用程序使用它在bug报告中称其在Apiport的各种类别中有1-7%的使用率。DatasetExtensionsDataTableExtensions在.NET Core 3之中将不再支持。虽然它看起来只是有6个扩展方法的类但是在不修改System.Data的情况下我们无法构建AsDataView方法。原因相当的复杂涉及内部方法、类型转发和.NET Standard带来的挑战。原文地址:https://www.cnblogs.com/SuperChan/p/10286544.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/92026.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!