假设我的数据库中有一个名为Table1
的表。我在Table1
中有3列名为
FirstName
SurName
DOB
在sql中,我只需要select * from Table1
,它将显示该特定表中的所有内容。但是我想要了解的是如何在C#中使用Linq
从该表中选择所有值。 Table1
在数据库中,前端正在使用ASP.NET和C#进行开发,我似乎无法理解这一点。我对linq
的了解非常少,所以如果我犯了一个明显的错误,请原谅我
答案 0 :(得分:1)
请参阅以下链接了解linq的简介
What is Linq and what does it do?
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,文件,数据库,等等!
答案 1 :(得分:1)
在Linq2Sql中,您可以通过
简单地选择所有字段从datacontext开始:
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
答案 2 :(得分:0)
由于您使用的是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);
}
}