本文整理汇总了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;
}
示例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;
}