当前位置: 首页>>代码示例>>C#>>正文


C# DbContext.ExecuteDbApi方法代码示例

本文整理汇总了C#中DbContext.ExecuteDbApi方法的典型用法代码示例。如果您正苦于以下问题:C# DbContext.ExecuteDbApi方法的具体用法?C# DbContext.ExecuteDbApi怎么用?C# DbContext.ExecuteDbApi使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在DbContext的用法示例。


在下文中一共展示了DbContext.ExecuteDbApi方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Respond

        public HttpResponseMessage Respond(ApiController apiController, string sp, IDictionary<string, object> parameters,
			MediaTypeHeaderValue negotiatedMediaType, Encoding negotiatedEncoding)
        {
            HttpResponseMessage csvResponse = apiController.Request.CreateResponse();
            IDictionary<string, string> queryStrings = apiController.Request.GetQueryStringDictionary();
            MemoryStream memoryStream = new MemoryStream();	// TBD: To find a more efficient way later

            using (XLWorkbook workbook = new XLWorkbook())
            using (DbContext dbContext = new DbContext())
            {
                dbContext.SetNamingConvention(queryStrings);

                IXLWorksheet currentWorksheet = null;

                dbContext.ExecuteDbApi(sp, parameters, rs =>
                    {
                        currentWorksheet = workbook.AddWorksheet(string.Format("Sheet{0}", rs + 1));
                    },
                    header =>
                    {
                        if (currentWorksheet != null)
                            for (int col = 0; col < header.VisibleFieldCount; col++)
                                currentWorksheet.Cell(1, col + 1).SetValue(dbContext.ResolvePropertyName(header.GetName(col))).Style.Font.Bold = true;
                    },
                    rows =>
                    {
                        if (currentWorksheet != null)
                            currentWorksheet.Cell(2, 1).Value = rows;
                    },
                    foot =>
                    {
                        if (currentWorksheet != null)
                            currentWorksheet.Columns().AdjustToContents();
                    }, null, null, true);

                workbook.SaveAs(memoryStream);
                memoryStream.Seek(0, SeekOrigin.Begin);
            }

            csvResponse.Content = new StreamContent(memoryStream);
            csvResponse.Content.Headers.ContentType = negotiatedMediaType;
            csvResponse.Content.Headers.ContentLength = memoryStream.Length;
            csvResponse.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = queryStrings.GetQueryFileName(DbWebApiOptions.QueryStringContract.FileNameParameterName, FormatShortName) };

            return csvResponse;
        }
开发者ID:girish66,项目名称:DbWebApi,代码行数:46,代码来源:XlsxFormatPlug.cs

示例2: Respond

        public HttpResponseMessage Respond(ApiController apiController, string sp, IDictionary<string, object> parameters,
			MediaTypeHeaderValue negotiatedMediaType, Encoding negotiatedEncoding)
        {
            HttpResponseMessage csvResponse = apiController.Request.CreateResponse();
            IDictionary<string, string> queryStrings = apiController.Request.GetQueryStringDictionary();
            int[] resultSetChoices = new int[] { GetQueryResultSetIndex(queryStrings, DbWebApiOptions.QueryStringContract.ResultSetParameterName) };

            csvResponse.Content = new PushStreamContent((stream, httpContent, transportContext) =>
            {
                StreamWriter textWriter = (negotiatedEncoding == null) ? new StreamWriter(stream) : new StreamWriter(stream, negotiatedEncoding);

                using (DbContext dbContext = new DbContext())
                {
                    dbContext.SetNamingConvention(queryStrings);

                    CsvExporter csvExporter = new CsvExporter(textWriter);

                    dbContext.ExecuteDbApi(sp, parameters, null,
                        readHeader =>
                        {
                            string[] headers = new string[readHeader.VisibleFieldCount];

                            for (int i = 0; i < headers.Length; i++)
                                headers[i] = dbContext.ResolvePropertyName(readHeader.GetName(i));

                            csvExporter.WriteHeader(headers);
                        },
                        readRow =>
                        {
                            object[] values = new object[readRow.VisibleFieldCount];

                            readRow.GetColumnValues(values);

                            csvExporter.WriteRow(values);
                        },
                        null, null, resultSetChoices);

                    textWriter.Flush();
                }

                stream.Close();
            }, negotiatedMediaType ?? _DefaultMediaType);

            csvResponse.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = queryStrings.GetQueryFileName(DbWebApiOptions.QueryStringContract.FileNameParameterName, FormatShortName) };

            return csvResponse;
        }
开发者ID:girish66,项目名称:DbWebApi,代码行数:47,代码来源:CsvFormatPlug.cs


注:本文中的DbContext.ExecuteDbApi方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。