从数据库中检索信息

时间:2012-01-18 09:08:25

标签: c# linq-to-sql

我将使用LINQ从数据库中检索信息,但我不知道为什么我会收到此错误:

  

无效的对象名称' Retriveinfos'。

我的班级在这里:

[Table (Name="Retriveinfos")]
public class Retriveinfo
{
        [Column]
        public string Name { get; set; }
        [Column]
        public string LastName { get; set; }
        [Column(IsPrimaryKey = true)]
        public int Id { get; set; }
    }

然后使用这行代码连接和检索信息:

DataContext dcon = new DataContext(@"Data Source=.\SQLEXPRESS;AttachDbFilename=F:\Second_School_project\Review_Site\Review_Site\App_Data\ReviewDatabase.mdf;Integrated Security=True;User Instance=True");
Table<Retriveinfo> Retriveinfos = dcon.GetTable<Retriveinfo>();

var c = from d in Retriveinfos
        where d.Id == 1
        select new { d.Name, d.LastName };

foreach (var a in c)
    Response.Write(a.Name.ToString() + " " + a.LastName.ToString());

2 个答案:

答案 0 :(得分:2)

好的Retriveinfos是数据库中的一个表而不是一个类,您可能需要使用类似实体框架的类来创建类来表示您的表,然后才能执行上述操作

答案 1 :(得分:0)

如果输入dcon.xxx会发生什么 在那一刻,你应该得到intellisense,你得到正确的名字。

此外,没有必要使用GetTable,你可以这样做

var c = from d in dcon.Retriveinfos  
where d.Id == 1         
select new { d.Name, d.LastName };  

foreach (var a in c)   
{ ... }

顺便说一下,如果您的ID确实是唯一的,您可以这样做:

var c = dcon.Retriveinfos.SingleOrDefault(s=>s.id == 1)

在这种情况下你也可以跳过你的foreach