【问题标题】:Web service for custom queries in C#C# 中用于自定义查询的 Web 服务
【发布时间】:2011-06-12 11:23:16
【问题描述】:

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

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

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

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

谢谢!

【问题讨论】:

    标签: asp.net web-services wcf-data-services dbmigrate


    【解决方案1】:

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

    查看Northwind data example,您只需要以下代码即可返回客户 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 服务:

    【讨论】:

      【解决方案2】:

      你应该检查WCF Data Services和ADO.NET Data Services
      我认为它符合您的需求。

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

      【讨论】:

        【解决方案3】:

        我根本不会选择 Web 服务。

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

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

        【讨论】:

        • 感谢您对性能的关注,但我根本不关心效率...移动数据后,我将关闭该服务器!实际正确解析数据可能需要几次尝试,因此可以节省我不手动移动 .cvs 文件的时间。
        猜你喜欢
        • 2011-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多