1

我们正在从 ASP.NET/SQL 服务器设置迁移到 rails/mysql 设置。因此,我需要将数据从我的 SQL Server 数据库中传输出来,但我不能直接将它从 SQL Server 移动到 mysql,因为有些事情需要通过 rails 在每条记录的基础上完成筛选。

由于需要处理此过程的方式,我认为最好的方法是让我的 Rails Web 服务器使用来自 ASP.NET 服务器的 Web 服务并让它从 SQL Server 数据库中提取记录。Rails 服务器修改数据后,可以将每条记录保存在数据库中。

我想返回一个由 rails 服务器确定的简单“select * from table_name”查询。简而言之,我希望 Rails 服务器将“select * from customers”发送到 ASP.NET 服务器,然后 asp.net 服务器通过 XML 或 json 返回数据列表。

这可能吗?我知道可以通过 Web 服务返回数据,但我想知道是否可以在使用服务器上确定 sql 查询。

谢谢!

4

3 回答 3

1

ServiceStack还让这一切变得非常容易,只需 1 行代码,您的 Web 服务就可以自动返回XML、JSON、CSV、JSV甚至HTML格式的数据,以便轻松阅读数据的表格视图。

查看Northwind 数据示例,其中只需以下代码即可返回客户 POCO 列表:

    public class CustomersService : RestServiceBase<Customers>
    {
            public IDbConnectionFactory DbFactory { get; set; }

            public override object OnGet(Customers request)
            {
              return new CustomersResponse { Customers = DbFactory.Exec(dbCmd =>
                    dbCmd.Select<Customer>()) 
            };
    }

然后只需上面的代码,您就可以调用返回所有内容的 web 服务:

于 2011-06-14T12:04:28.920 回答
0

您应该检查WCF 数据服务ADO.NET 数据服务
,我认为它符合您的需求。

对您的 DataService 的表Customers查询将是http://localhost:12345/DATABASE_NAME.svc/Customers,您可以轻松地将一些过滤器表达式添加到您的查询中。

于 2011-06-12T11:26:31.767 回答
0

我根本不会选择 Web 服务。

您可以从 SQL-SERVER 以 .cvs(平面文件目标)格式导出数据,然后从 RoR 解析它。我不知道该怎么做,但显然 RoR 在框架中内置了 .cvs IO 工具。

如果您有大量数据,使用 Web 服务将比创建 .cvs 文件并在本地使用它以进行插入效率低得多。

于 2011-06-12T11:31:26.053 回答