我有兴趣在我的 vue.js .net 核心项目中使用报告服务。我不需要 reportviewer 控件,只是为了执行适当的代码来远程处理它以作为字节流返回到 .pdf 中。
我有我以前在 ASP.net MVC / angularjs 项目中与 microsoft.reporting.webforms 命名空间一起使用的代码来做同样的事情,但 webforms 实现将不再与 .net 核心管道一起使用。
有谁知道如何使用 .net core 1.1 远程调用 SSRS 报告?在 .net 4.x 中,这是通过 ReportViewer.ServerReport.Render("PDF", etc...) 完成的
谢谢。
从使用Entity Framework和linq的存储过程中请求数据时,会引发此异常。
An unhandled exception occurred while processing the request.
InvalidOperationException: Sequence contains more than one matching element
System.Linq.Enumerable.SingleOrDefault<TSource>(IEnumerable<TSource> source,
Func<TSource, bool> predicate)
Run Code Online (Sandbox Code Playgroud)
堆栈的相关部分在这里(在两行上表示歉意,但是堆栈溢出编辑器不会让我在不离开代码块格式的情况下破坏它):
System.Linq.Enumerable.SingleOrDefault<TSource>(IEnumerable<TSource> source,
Func<TSource, bool> predicate) Microsoft.EntityFrameworkCore.Query.Sql.Internal.FromSqlNonComposedQuerySqlGenerator.CreateValueBufferFactory(IRelationalValueBufferFactoryFactory relationalValueBufferFactoryFactory, DbDataReader dataReader) Microsoft.EntityFrameworkCore.Internal.NonCapturingLazyInitializer.EnsureInitialized<TParam, TValue>(ref TValue target, TParam param, Func<TParam, TValue> valueFactory) Microsoft.EntityFrameworkCore.Query.Internal.ShaperCommandContext.NotifyReaderCreated(DbDataReader dataReader) Microsoft.EntityFrameworkCore.Query.Internal.AsyncQueryingEnumerable+AsyncEnumerator+<BufferlessMoveNext>d__9.MoveNext() System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
Run Code Online (Sandbox Code Playgroud)
该错误是由于使用.FromSql作为linq查询的一部分进行数据库调用而引起的。我这样调用数据-即使它具有.ToListAsync(),堆栈跟踪也表明linq语句仍对返回的每个行项目调用.SingleOrDefault()-我假设这是有意的:
[HttpPost, Route("GetOneWeekRosters")]
public async Task<List<RosterLineView>> GetOneWeekRosters([FromBody] RosterSearch mysearch)
{
var dataentry = await _edb.RosterLineViews.FromSql("GetOneWeekRosters @Date, @DepartmentID, @RosterID, @RosterWeekID, @Active", new SqlParameter("@Date", mysearch.DateSelected), new SqlParameter("@DepartmentID", mysearch.DepartmentID), new SqlParameter("@RosterID", mysearch.RosterID), new SqlParameter("@RosterWeekID", mysearch.RosterWeekID), new SqlParameter("@Active", …Run Code Online (Sandbox Code Playgroud)