LinqToSql到LinqToXML - 区别

时间:2010-02-04 10:23:42

标签: xml linq-to-xml

我开发了一个Web应用程序,它有一个带有它的SqlServerMembershipProvider和一个使用linqtosql的db接口。但是当我们将应用程序部署到我们的Web主机时,我们遇到了会员提供商的一些问题。这是因为我们可以在本地IIS服务器中修复一些应用程序池配置,但我们无法使用我们的Web主机中的plesk修复它。

我们决定更改我们的网络托管公司,我们现在正在考虑使用xml作为数据源,因为sql server的成本对于项目来说太多了。是否存在xml的成员资格提供程序?

Sql和XML之间的主要区别是什么?慢点 ?更安全 ?如果xml文件变大,加载会变慢吗?

由于

1 个答案:

答案 0 :(得分:1)

LINQ代表Language INtegrated Query。这是Visual Studio 2008中引入了C#和VB.NET的新语言功能。

LINQ使您能够直接在代码中编写查询。 LINQ to SQL将您编写的LINQ代码转换为发送到SQL Server的SQL语句。 LINQ to XML提供了使用XML的语法。 他们都使用LINQ,但它们不是可互换的技术。

LINQ提供程序中内置的另一个主要功能是LINQ to Objects,它允许您在.NET中针对集合(特别是那些实现IQueryable接口的集合)编写查询。

还有许多其他鲜为人知的LINQ提供程序 - 甚至是LINQ to Twitter,它将LINQ转换为针对Twitter API的REST Web请求。

SQL Server是一个数据库。 XML是一种构造信息的方法,通常存储在文本文件中或通过网络传输。一个带有XML的大型文本文件(甚至是一组文件)会为网站制作一个可怕的数据。您必须编写一堆代码来处理对数据和事务的并发写入。 SQL Server无需任何额外工作即可为您完成这些工作。这就是它的目的。

如果您的网络访问者只有一小组只读信息,那么将其存储在xml文件中可能会有意义。

仅仅因为您可以通过LINQ从SQL Server和XML文件访问信息并不意味着您可以将其中一个替换为另一个。

此外,我所看到的所有Windows Web主机都包含基本主机方案中的至少一个SQL Server数据库,因此成本不应成为问题。