如何决定使用哪种ADO.NET方法?

时间:2009-10-03 18:00:53

标签: .net ado.net

我是ADO.NET的新手,我对可用于操作数据的选项数量感到困惑和沮丧。有定期的ADO.NET,LINQ to SQL,Entity Framework。

现在我正在开发一个IRC客户端,并使用ADO.NET(和SQLite提供程序)来存储网络,服务器,收藏频道等设置。

我如何决定使用哪个?

编辑:我认为应该提及的另一件事是将“绑定”设置添加到GUI以便编辑和管理它们。例如,左侧是TreeView中的网络和设置的设置对话框,右侧是文本框,用于编辑它们。

3 个答案:

答案 0 :(得分:1)

对于您正在进行的轻量级工作,LINQ与SQLite提供程序在我看来非常适合。

详细说明:

如果您正在使用数据量非常大的应用程序,那么ADO.NET可能是您在性能与可用性方面的最佳选择。

但是,如果您需要执行高级操作,例如从多个数据源查询,业务层验证或审计注入,Entity Framework可能是您最好的选择。

答案 1 :(得分:1)

首先,Linq-to-SQL仅适用于Microsoft SQL Server - 所以在你的情况下,该选项就在窗外了。

接下来,我猜你真的需要决定数据访问的复杂程度和复杂程度。

如果您主要处理几个表,每个表包含几列,并且您需要来回读取和写入一些信息,那么您最好使用标准的,直接的ADO .NET(用于执行SQL查询的ADO.NET连接和命令对象)。在这种情况下,由您来处理关系模型(数据库中的行和列)与应用程序中的对象之间的所有“转换” - 这有点粗暴,有时会重复编码 - 但它有效,对于简单的场景来说相当容易,并且为理解ADO.NET的内部工作提供了最好的基础(如果你对它很新)。

ADO.NET实体框架和Linq-to-Entities是一个完全不同的野兽 - 而且相当复杂。当您拥有非常大的应用程序,数据库中有数十或数百个表,应用程序中的大型可能的复杂业务对象模型,并且您需要支持所有类型的后端(SQL Server,Oracle,Postgres等)时,它真的很棒。 )。 EF允许您在设计器中定义对象(您的“Customer”类及其属性)与数据库中的关系存储(您的“Customers”表及其列)之间的映射,EF将处理大量的表格和域名对象之间的映射工作非常繁琐 - 但肯定会学到很多东西。

所以在你的情况下,使用一个相当简单的应用程序,我肯定建议现在使用普通的旧ADO.NET,以了解绳索并了解它的工作原理。我不认为EF路线在你的情况下是值得的麻烦和学习曲线。

马克

答案 2 :(得分:1)

我真的不明白为什么你需要ADO。为什么不直接使用.NET的内置设置持久性框架?这会自动将您的设置存储为XML文件。

请参阅:http://www.devx.com/dotnet/Article/33944