我已经设置了本地服务和Windows Azure数据库。我可以访问Azure数据库并从所有行检索数据,但只能从一列中检索数据。
数据库有一个名为People的表,每个'record'都被视为Person。表中的一列是'Name',我可以使用以下方法检索所有名称:
public List<string> GetAllPeople()
{
string query = @"SELECT value Person.Name FROM DataEntities.People AS Person";
List<string> resultsAsStrings = new List<string>();
using (var context = new DataEntities())
{
ObjectQuery<string> results = context.CreateQuery<string>(query);
foreach (string result in results)
{
if (result != null)
{
resultsAsStrings.Add(result);
}
}
}
return resultsAsStrings;
}
如何更改查询以便我可以检索表中所有列的所有Person记录的列表,而不仅仅是名称字段?
是否有更好的方法从Azure表中读取数据?
干杯!
编辑: 当我将查询更改为: @“SELECT value Person FROM DataEntities.People AS Person”;
它返回null并且我的WP7应用程序崩溃了。 (我还调整了代码,以便它接受Person而不是string.E.G ObjectQuery
答案 0 :(得分:1)
尝试将调用更改为CreateQuery:
From: CreateQuery<string>
To: CreateQuery<Person>
这是必需的,因为如果你选择一个Person,那么这不是一个字符串,而是一个Person。
现在,您可以尝试不使用类型(Person)作为别名吗?尝试这样的事情:
SELECT VALUE pers FROM DataEntities.People AS pers
为什么不简单地使用 context.People ?