了解 Linq 查询的基础知识
本文关键字:基础知识 查询 Linq 了解 | 更新日期: 2023-09-27 18:33:55
假设我的数据库中有一个名为 Table1
的表。我有 3 列Table1
命名
FirstName
SurName
DOB
在sql中,我只需执行select * from Table1
,它将显示该特定表中的所有内容。但是,我试图理解的是如何使用 C# 中的Linq
从此表中选择所有值。 Table1
在数据库中,前端是使用 ASP.NET 和 C# 开发的,我似乎无法解决这个问题。我对linq
的了解很少,所以如果我犯了一个明显的错误,请原谅我
有关 linq 的介绍,请参阅下面的链接
什么是 Linq,它有什么作用?
http://weblogs.asp.net/scottgu/using-linq-to-sql-part-1
Linq 提供了查询数据的方法,但您仍然需要提供一种 Linq 访问该数据的方法 - 无论是通过 Linq2Sql 类、ADO、实体框架等。
我是实体框架 (EF) 的粉丝,您可以在其中设置表示数据的对象,并使用上下文来填充这些对象。
它可能看起来像这样:
public class Table1
{
public string FirstName { get; set; }
public string SurName { get; set; }
public DateTime DOB { get; set; }
}
public class Table1Repository
{
private readonly MyEntities _context;
public Table1Repository()
{
this._context = new MyEntities();
}
public IQueryable<Table1> Get()
{
return this._context.Table1; // in effect your "Select * from table1"
}
public IQueryable<Table1> GetById(DateTime dob)
{
return this._context.Table1.Where(w => w.DOB == dob); // pulls records with a dob matching param - using lambda here but there is also "query expression syntax" which looks more like sql
}
}
请注意,您是在表示数据的上下文(而不是数据库本身)上执行 linq 查询。 Linq 非常强大,但您需要为其提供一种访问数据的方法。 即使这些数据是xml,文件,数据库等等!
在 Linq2Sql 中,您可以非常简单地通过以下方式选择所有字段
从数据上下文开始:
var db = new YourDataContext()
之后,您可以做以下操作
var myData = from row
in db.table1
select row
正如你自己表明的那样,你的知识太有限了。查看有关 L2S 的系列:http://weblogs.asp.net/scottgu/using-linq-to-sql-part-1
由于使用的是 EF6,因此可以使用 LinqToEntity 读取表。
public ObservableCollection<Table1> ReadTable1()
{
using (YourDBContext dc = new YourDBContext())
{
var data = (from x in dc.Table1
select x);
return new ObservableCollection<Table1>(data);
}
}