如何从WCF中的数据库返回PDF /二进制数据

时间:2013-04-16 01:05:18

标签: c# sql-server json wcf-rest

我有一个WCF-REST服务,以JSON格式返回数据,从SQLSERVER中的数据库读取...要返回简单数据,我没有任何问题。

现在,我想返回一个PDF文件,它位于varbinary(max)字段的数据库中。
在WCF Rest Service中返回PDF数据的正确方法是什么?

[EDITED] 这就是它的建议方式。这是班级:

    [WebGet(UriTemplate = "/documents/{id}")]
    public ActionResult GetDocument(int id)
    {
        using (var context = new CorrespondenceDataContext())
        {
            var item = context.DocumentsPDFs.Find(id);
            return File(item.Document, "application/pdf", "Document-" + id);
        }
    }

现在我已经完全按照这个建议做了,但我想这与我的项目不兼容(我对此有点新意)...... 第一个错误:无法找到类型或命名空间名称“ActionResult” 第二个错误:System.Data.Linq.Table不包含查找的定义 第三个错误:System.IO.File是一种类型,但用作变量

我试图添加System.Web.MVC,但它没有出现。我的项目是WCF服务应用程序......

1 个答案:

答案 0 :(得分:0)

    [WebGet(UriTemplate = "/documents/{id}")]
    public ActionResult GetDocument(int id)
    {
        using(var context = new CorrespondenceDataContext())
        {
            var item = context.DocumentsPDFs.Find(id);
            return File(item.Document, "application/pdf", "Document-" + id);
        }
    }