0

我正在尝试构建一个 Silverlight 应用程序来访问和呈现来自 MySQL 数据库的数据。我正在尝试使用实体框架对 MySQL 数据和 RIA 服务进行建模,以通过 EF 将数据提供给 Silverlight。

我的 Silverlight 应用程序在数据网格中显示正确的列,但它不显示数据(图片的替代链接):

没有数据的 DataGrid :-(

当我查看 DomainService 文件(用于 RIA 服务)时,我看到:

    public IQueryable<saw_order> GetSaw_order(int intOrder)
    {
        return this.Context.saw_order
            .Where(o => o.Wo == intOrder);
    }

为了测试这一步,我修改了 LINQ 以删除 where ,这样我所拥有的就是return this.Context.saw_order;. 当我这样做时,我能够检查 MySQL 服务器并验证查询实际上已发送到 MySQL 服务器,并且 MySQL 服务器正在“写入 NET”并尝试发回数据。从我的测试机器发送的查询是有效的。

从我上面的测试来看,数据似乎被正确地发送到 MySQL 服务器,但在返回时丢失了。我现在的困难是试图弄清楚数据在链中的哪个位置(实体框架到 RIA 服务到 Silverlight 客户端)丢失了,我不确定如何在不同的点进行调试。

例如,我可以通过哪些其他方式测试 Entity Framework 以确保 EF 不是问题?我如何测试 RIA 服务?我应该在 Silverlight 客户端上进行测试吗?

我正在努力学习 C#,不知道该怎么做才能测试。我如何“捕捉” DomainService 中的返回,以便进行一些基本的调试。

很感谢任何形式的帮助。

4

2 回答 2

3

像这样更改您的代码:

var qry = this.Context.saw_order.Where(o => o.Wo == intOrder);
return qry;

如果您在返回处设置断点,那么您可以尝试在即时窗口中执行查询,看看它是否正确执行。

于 2009-10-01T14:36:08.277 回答
1

从我上面的测试来看,数据似乎被正确地发送到 MySQL 服务器,但在返回时丢失了。我现在的困难是试图弄清楚数据在链中的哪个位置(实体框架到 RIA 服务到 Silverlight 客户端)丢失了,我不确定如何在不同的点进行调试。

我使用如下工具: Linqpad:这是用于测试我的 linq to sql 语句。它非常简单易用。

Fiddler:Fiddler 会告诉你服务器和客户端之间发生了什么。

于 2009-10-01T15:21:41.587 回答