3

我已经建立了一个本地服务和一个 Windows Azure 数据库。我可以访问 Azure 数据库并从所有行中检索数据,但一次只能从一列中检索数据。

该数据库有一个名为 People 的表,每个“记录”都被视为一个 Person。表中的一列是“名称”,我可以使用以下方法检索所有名称:

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 而不是字符串。EG ObjectQuery

4

1 回答 1

1

尝试更改对 CreateQuery 的调用:

From: CreateQuery<string>
To: CreateQuery<Person>

这是必需的,因为如果您选择一个人,这将不是一个字符串,而是一个人。

现在,您可以尝试不使用类型 (Person) 作为别名吗?尝试这样的事情:

SELECT VALUE pers FROM DataEntities.People AS pers

为什么不简单地使用context.People

于 2012-07-27T11:59:30.560 回答