我想要做的是逐行读取数据库,并使用每行的数据初始化数据所代表的类型的对象。在这种情况下,我正在读取Device表的行,并尝试使用该数据创建Device对象。我这看见SO link:从c#数据库直接读取对象到类中
,我试过这个片段:
using(var dc = new DataContext(connectionString))
{
List<Person> people = dc.ExecuteQuery(@"
SELECT Id, Name Address
FROM [People]
WHERE [Name] = {0}", name).ToList(); // some LINQ too
}
但它告诉我
类型参数的这种用法不能从使用推断
这是否基本正确或应该使用BondIO串行器/解串器?如上所述here
另外,对象中成员的顺序可能与数据库中列的顺序不同,这是否相关?
当天晚些时候....
我现在有一个的DbContext用这样定义我所有的数据库对象:
public class MyContext : DBContext
{
public dbSet<Device>{ get; set;}
etc...
}
,我现在尝试使用这个片段来获得对象:
using (var db = new MyContext(ConnectionString))
{
var res = db.Device.Find(ID);
}
然而,这给出了一个异常消息
未能加载类型“System.Data.Entity.ModelConfiguration.Conventions.AttributeToColumnAnnotationConvention`2
我检查了数据库,并应根据,我传递的PrimaryKey ID返回值1。任何人都有任何暗示我仍然做错了什么。
但是,如果我有设备类已经凭借其成员喜欢你定义只是,为什么不能我查询所有列,并直接加载它们进入设备对象? – Alan
我soory - 我的回答是错误的。我正在纠正它。 – HGMamaci
你的意思是ExecuteCommand? DataContext.SqlQuery似乎并不存在.... – Alan