错误CS0308非通用方法'ICollection <servicedescriptor> .Add(ServiceDescriptor)'不能与Startup.cs

时间:2019-03-11 03:05:22

标签: c# sql-server sqlkata

最近,我正在使用SqlKATA查询生成器。我按照here中所述的步骤进行操作。解决了一些错误之后,当我的代码中没有红色下划线情况时,我运行了解决方案。然后我收到错误CS0308。当我尝试对解决方案进行故障排除时,我在Startup.cs的一部分中添加了注释,该部分可在ConfigureServices方法中找到:

services.Add<QueryFactory>(() => { var connection = new SqlConnection( "Data Source=serverName\serverInstance;Initial Catalog=databaseName;Integrated Security=True"); var compiler = new SqlServerCompiler(); return new QueryFactory(connection, compiler); });

此后,它与我设置的显示文本一起顺利运行。但是当我取消注释该节时,它再次向我显示错误。

任何想法为何?任何帮助将非常感激! 编辑var connection = new SqlConnection( "Data Source=serverName\\serverInstance;Initial Catalog=databaseName;Integrated Security=True");

1 个答案:

答案 0 :(得分:1)

我不知道这是否仍然有用,但是我通过构造函数DI将QueryFactory对象注入到查询处理程序中的方式在Startup.cs-ConfigureServices中是这样的:

        services.AddScoped(factory =>
        {
            return new QueryFactory
            {
                Compiler = new SqlServerCompiler(),
                Connection = new SqlConnection(connStr),
                Logger = compiled => Console.WriteLine(compiled)
            };
        });

PS:这是.NET Core