使用C#.Net访问SQL Server数据库的最佳方法
我是.NET的新手,并且已经了解了几种不同的查询SQL Server数据库的方法,例如ADO.NET和entity framework。
任何人都可以给我一些关于新应用程序的最佳方法的建议吗?
感谢您的任何帮助或建议。
下面是使用EF从数据库生成代码的示例(对于您可能希望从代码生成数据库的真实应用程序):
- 右键单击您的项目>>添加>>新项>> ADO.NET实体数据模型。
- 为您的实体选择一个名称,即MyEntities.edmx,单击“下一步”
- 选择“从数据库生成”
- 如果还没有“新连接”,请配置它。 下一个。
- 选择要包含在实体中的表,视图和SPROC。 完。
您将看到一个文件MyEntities.edmx已添加到您的项目中。 您可以在设计视图中打开它以查看实体和关系的图表。 请注意,每个实体都应该有一个主键 – 最简单的方法是向每个表或GUID列添加ID – 自动增量字段。 无论如何,你现在可以像这样查询你的数据库:
// assuming a "Product" table, which has an entity pluralized to "Products" MyEntities db = new MyEntities(); var cheapProducts = db.Products.Where(p => p.Price > 30); // var is IEnumerable
entity framework是最简单的,它内置。
您所要做的就是重要您的模型,然后只需更新自动映射到数据库的简单类。
它就像更新普通对象一样,但最后你会调用SaveChanges。
LINQ to SQL很容易使用。 您可以将数据库表拖放到设计器中,并在几分钟内编写非常简单的查询。
NorthwindDataContext db = new NorthwindDataContext(); var products = from p in db.Products select p;
哪个基本上会转换为SELECT * FROM Products
其他一些选择样本:
var products = from p in db.Products where p.Category.Name == "Beverages" select p; var products = from p in db.Products orderby p.Name select p;
在我看来,最好的解决方案是在db和应用程序(某种类型的数据层)之间创建中间类,其中有许多方法用于管理查询。 以下描述基于SQLite作为SQLServer(ADO连接器)的类比
提到类可以通过单例,你可以在应用程序中的任何地方调用它实例 – 对于SQLite,它看起来像这样:
private static SQLite instance; public static SQLite getInstance() { if(instance == null) { instance = new SQLite(); thread = Thread.CurrentThread.ManagedThreadId; } return instance; }
您可以这样获取实例:
SQLite db = SQLite.getInstance();
此类可以包含多个数据操作方法,例如:
public SQLiteCommand prepareQuery(string sql) { cmd = new SQLiteCommand(sql, conn); return cmd; } public SQLiteDataReader executeReader() { return cmd.ExecuteReader(); } public int executeInt() { object obj = cmd.ExecuteScalar(); return (int)obj; }
还有事务管理和诊断方法。 所以现在 – 你可以在你的应用程序中使用类似这样的类,如果你有其他数据库源甚至数据库类型,你可以创建下一个数据层(例如对于Oracle或MSSQL,MySQL ……),每个数据层都实现了相同的界面例如:
IDataBase
现在,你有一些外观,你可以根据需要动态地替换。 从这个时候在应用程序中使用db集中在一个地方,程序员使用它是非常高兴的 – 这是我的建议。
NHibernate是要走的路。 有关更多信息,请参见https://nhforge.org和https://sf.net/projects/nhibernate 。
Entity Framework和NHibernate之间的主要区别在于Entity Framework仅适用于Microsoft SQL Server(Oracle受支持,但支持并不理想)。 NHibernate支持许多许多数据库。
上述就是C#学习教程:使用C#.Net访问SQL Server数据库的最佳方法分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1031448.html