使用C#.Net访问SQLServer数据库的最佳方式我是.NET的新手,学习了几种不同的SQLServer数据库查询方法,如ADO.NET和实体框架。谁能给我一些关于新应用程序最佳方法的建议?感谢您的帮助或建议。下面是使用EF从数据库生成代码的示例(对于您可能希望从代码生成数据库的真实应用程序):右键单击您的项目>>添加>>新项>>ADO.NET实体数据模型。为您的实体选择一个名称,MyEntities.edmx,单击“下一步”,如果您还没有,请选择“从数据库生成”和“配置新连接”。下一个。选择要包含在实体中的表、视图和SPROC。超过。您将看到一个文件MyEntities.edmx添加到您的项目中。您可以在设计视图中打开它以查看实体和关系图。请注意,每个实体都应该有一个主键-最简单的方法是添加一个ID-自动递增字段到每个表或GUID列。无论如何,您现在可以像这样查询您的数据库://假设有一个“Product”表,其中有一个复数形式为“Products”的实体MyEntitiesdb=newMyEntities();varcheapProducts=db.Products.Where(p=>p.Price>30);//var是IEnumerable实体框架最简单的,它已经内置了。您所要做的就是导入模型,然后更新自动映射到数据库的简单类。就像更新普通对象一样,但最后调用SaveChanges。LINQtoSQL易于使用。您可以将数据库表拖放到设计器中,并在几分钟内编写非常简单的查询。NorthwindDataContextdb=newNorthwindDataContext();varproducts=frompindb.Productsselectp;这基本上会转化为SELECT*FROMProducts其他一些选择样本:varproducts=frompindb.Productswherep.Category.Name=="Beverages"selectp;varproducts=frompindb.Productsorderbyp.Nameselectp;在我看来,最好的解决方案是在数据库和应用程序(某种类型的数据层)之间创建一个中间类,其中包含许多用于管理查询的方法。以下描述基于SQLiteasSQLServer(ADOConnector)类比,提到该类可以作为单例传递,您可以在应用程序的任何地方调用它实例——对于SQLite,它看起来像这样:privatestaticSQLiteinstance;publicstaticSQLitegetInstance(){if(instance==null){instance=newSQLite();thread=Thread.CurrentThread.ManagedThreadId;}返回实例;你可以这样获取实例:SQLitedb=SQLite.getInstance();可以包含多个数据操作方法,例如:publicSQLiteCommandprepareQuery(stringsql){cmd=newSQLiteCommand(sql,conn);返回命令;}publicSQLiteDataReaderexecuteReader(){returncmd.ExecuteReader();}publicintexecuteInt(){objectobj=cmd.ExecuteScalar();返回(整数)对象;}还有事务管理和诊断方法。所以现在-你可以在你的应用程序中使用这样的类,如果你有其他数据库源甚至数据库类型,你可以创建下一个数据层(例如Oracle或MSSQL,MySQL...),每个数据层都实现相同的接口,例如:IDataBase现在,您有一些可以根据需要动态替换的外观。从这一点开始,应用程序中的数据库集中在一个地方,程序员很乐意使用它——这是我的建议。NHibernate是要走的路。有关详细信息,请参阅http://nhforge.org和http://sf.net/projects/nhibernate。EntityFramework和NHibernate之间的主要区别在于EntityFramework仅适用于MicrosoftSQLServer(支持Oracle,但不是理想情况)。NHibernate支持很多很多数据库。以上就是《C#学习教程:使用C#.Net访问SQLServer数据库的最佳方式》分享的全部内容。如果对你有用,需要了解更多C#学习教程,希望大家多加关注——本文来自网络合集,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
