我正在尝试在C#程序中使用LINQ来从数据库中获取信息。我发现了很多显示基本到高级查询的示例,但我找不到任何可以获得基本数据库连接的东西。请参阅下面的基本LINQ示例:
var adultNames = from person in people
where person.Age >= 18
select person.Name;
我无法弄清楚如何访问特定的数据库表并从中返回信息。我希望能够连接到db表并从中返回一些信息。谢谢!
答案 0 :(得分:2)
听起来你一直在看LINQ的例子,它允许你从数据集中查询。您还需要的是一个对象关系映射器(ORM)。查看LINQ to SQL或The Entity Framework(较新)以开始此操作。该层将内省数据库并创建大量基础架构,以便根据数据模型为您提取数据。
答案 1 :(得分:2)
如果你正在使用Linq to Sql,那么这可能有所帮助:http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx
实体框架:http://www.codeguru.com/csharp/csharp/net30/article.php/c15489
答案 2 :(得分:2)
有许多方法可以从数据库中检索数据。 ADO.NET是一般技术。您的具体选择是:
<强> System.Data/SqlClient/ODP 强>
您可以使用ADO.NET中的标准查询系统从任何使用ODBC的数据库中获取数据,或使用本机数据提供程序(如SqlClient或ODP)。 SqlClient
命名空间可用于从SQL Server获取数据。 Oracle数据提供程序(ODP)与Oracle一起使用。
您必须使用“原始”ADO.NET自行编写查询/存储过程。
以下是ADO.NET示例代码的绝佳列表:http://msdn.microsoft.com/en-us/library/dw70f090.aspx
以下是Oracle ODP的链接:
http://www.oracle.com/technetwork/topics/dotnet/index-085163.html
LINQ to SQL
LINQ to SQL是专门用于SQL Server数据库的LINQ提供程序。它仍受支持,但已被实体框架取代。
此处提供更多详细信息:http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx
实体框架
实体框架可与SQL Server本机一起使用,并可与第三方或开源数据提供商一起使用Oracle。
Entity Framework 4 / 4.1将允许您使用实体数据模型(EDM)作为数据库的抽象。 EDM将显示一组可与之交互的对象,Context对象用于检索/提交数据到数据库。 CRUD查询是从LINQ语法动态生成的,因此在大多数情况下您不必自己编写T-SQL或PL-SQL查询。
以下是实体框架的基本示例:
http://www.codeproject.com/KB/database/sample_entity_framework.aspx
答案 3 :(得分:2)
这是一种非常简单的连接数据库的方法,虽然我建议您之后阅读应用程序配置以及项目的其他部分,看看它是如何工作的。
在菜单条中转到数据 - &gt;添加新数据源。从这里选择数据库然后实体数据模型。按照其余步骤为项目创建数据源。
在程序中,您可以使用以下命令创建数据源的对象:
WhatYouCalledTheDataSource datasourceObject = new WhatYouCalledTheDataSource();
然后,您可以通过将查询的第一行更改为:
来对此对象进行查询var adultNames = from person in datasourceObject.people
获取所需数据,获得查询后,您可以将结果放入以下列表中:
List<string> queryResults = new List<string>();
queryResults.AddRange(adultNames);
请记住,我的想法是名称是一个字符串。 您还可以根据
等表格创建列表var adultNames = from person ...
...
select person;
List<people> queryResults = new List<people>();
queryResults.AddRange(adultNames);
答案 4 :(得分:2)
如果您有数据库表人员,那么您可以使用LINQ-to-SQL从中返回信息,首先您需要引用以下两个程序集。
using System.Data.Linq;
using System.Data.Linq.Mapping;
定义以下实体:
[table]
class people
{
[column]
public int Age { get; set; };
[column]
public string Name { get; set; };
}
然后你可以编写针对数据库的游览查询
Datacontext db = new DataContext("database Connection String");
var adultNames = from person in db.GetTable<people>()
where person.Age >= 18
select person.Name;
答案 5 :(得分:1)
如果您看一下创建MVC解决方案的NerdDinner pdf file,它会逐步显示如何使用Linq to SQL创建数据集