2

我不太擅长 Linq 和 SQL。但我更多地使用 SQL 而更少使用 LINQ。我浏览了许多支持 LINQ 的文章。我不想走 SQL 的方式(即写存储过程和操作数据等)

对于与数据相关的每个操作,我想从 LINQ 开始。以下是我想这样做的原因:

  1. 我想通过应用程序而不是通过编写存储过程来完全控制我的数据库(因为我不太擅长编写存储过程)
  2. 我想将我的项目创建为易于维护的视图
  3. 想要更快的发展

为此,我知道:

  1. 我需要添加一个 dbml 文件,将表拖放到该文件中
  2. 使用 dbContext 类等

但我想知道,有没有办法:

  1. 我可以避免创建 dbml 文件并且仍然可以访问数据库吗?
  2. 我是否需要同样使用 Linq to Entities?
  3. 这会是避免使用 dbml 文件的好方法吗?因为对于每个数据库更改,我每次都需要删除和删除表
  4. 我还遇到过很多帖子,其中 linqToSql 被认为已弃用,而不是 .net 的未来?

我有很多疑问,但我认为在开始使用新技术时这很明显?

我发现这篇有用的文章对初学者很有用:

[http://weblogs.asp.net/scottgu/archive/2010/08/03/using-ef-code-first-with-an-existing-database.aspx][1]

在做了更多研究后,我得出结论:

1)我可以避免创建dbml文件并且仍然可以访问数据库??

ANS 是,但现在将创建 edmx 文件而不是 dbml。

2)我是否需要同样使用 Linq to Entities?

ANS 是的,您可以使用 linq 到实体。

3)避免使用dbml文件是个好方法吗?因为对于每个数据库更改,我每次都需要删除和删除表

ANS 不需要删除并再次创建表。它们是您可以更新数据库的选定部分并且您不会避免使用 dbmls 的选项。它将创建 edmx 文件,并且在许多方面几乎与 dbmls 相似。

4)我还遇到过很多帖子,其中 linqToSql 被认为已弃用,而不是 .net 的未来?

ANS 是的,在未来的发展中会贬值。它只支持 sql server 作为后端。

我希望我是对的。如果有任何其他建议,请告诉我。

4

1 回答 1

0

LINQ 是一种查询和项目数据集合的方法。例如,您可以使用 LINQ 从数据库或数组中查询和调整数据。LINQ 本身与底层数据库无关。

您使用 ORM(对象关系映射器)技术将存储在数据库表中的数据投影为对象集合。一旦你有了对象的集合,你就可以使用 LINQ 来查询它们。

现在,您有许多 ORM 技术可供选择,例如 Entity Framework、NHibernate、Linq2Sql。如果您不喜欢维护 dbml 文件,请查看Entity Framework 提供的代码优先方法

然后是称为 LINQ 数据提供程序的东西。他们会采用 LINQ 查询,将其转换为针对特定数据库的 SQL,执行查询并将结果作为一组对象返回。上面的许多 ORM 都内置了 LINQ 数据提供程序作为它们的一部分,并将在后台获取数据。

我建议您查看一些模式,例如数据层的存储库和工作单元。如果使用得当,这些模式会将您的数据访问代码与您的应用程序上层隔离开来。这将帮助您更改您的数据访问技术,如果它变得过时,而不影响应用程序的其余部分。

LINQ 是一项很棒的技术,您绝对应该尝试一下

我根据自己的经验撰写了上述答案,我相信有很多 SO 用户比我自己更了解上述技术,他们可能希望添加自己的意见

祝你好运

于 2013-04-02T08:57:43.840 回答