草庐IT

SQL注入

全部标签

c# - 在 SQL Server 2014 中围绕带有事务的存储过程使用 TransactionScope

我正在使用C#和ADO.Net以及TransactionScope在ASP.Net应用程序中运行事务。此事务应该跨多个表保存一些数据,然后向订阅者发送电子邮件。问题:当它包含对在SQLServer2014中有自己的事务的存储过程的调用时,它是否是TransactionScope的有效使用,或者我应该删除SQL事务语句,即begintran、committran和rollbacktran语句来自在此TransactionScope中调用的存储过程>?这个场景的C#代码和存储过程的T-SQL代码都在下面提到。使用TransactionScope的C#代码:try{using(Transac

c# - 连接 NLog 并将其注入(inject) .NET Core 控制台应用程序

我创建了一个消费者/工作,我将在Linux上以C#编写的进程运行。该过程将:从RabbitMQ读取消息修改数据库记录任何错误NLog上所有关于.NETCore的文档都在ASP.NETCore上。当我尝试获取ILogger实现时,它返回null。这里是接线和使用的异常(exception)情况:staticvoidConfigureServices(){stringenvironment=Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");varbuilder=newConfigurationBuilder().Set

c# - 如何使用通过依赖注入(inject)使用泛型的存储库接口(interface)?

我正在尝试使用以下通用存储库接口(interface)进行DI和构造函数注入(inject):publicinterfaceIRepository:IDisposablewhereTEntity:class问题是为了定义接口(interface)的实例,我必须像这样提供类类型:privateIRepository_personRepository;这个问题是如果我使用DI(并且我使用Unity作为IoC框架),那么我必须在我的构造函数中定义多个实例来获取我需要使用的所有存储库接口(interface),如下所示:publicMyClass(IRepositorypersonReposi

c# - Autofac 属性注入(inject)在属性上失败

我发现了一些关于此的问题,但它们往往指向我正在关注的确切文档......但它仍然无法正常工作。我正在构建一个相当简单的ASP.NETMVC4站点,计划使用基于ActionFilterAttribute的日志记录。我有一个DataAccessProvider类,它打开与数据库的事务并提供工作单元实例,我试图将它注入(inject)过滤器属性。documentation表示只需调用RegisterFilterProvider(),并确保相关类型已注册。它明确表示不需要注册该属性,但我已经尝试过使用和不使用。我的代码目前看起来像这样:varbuilder=newContainerBuilde

c# - WebApi + 简单注入(inject)器 + OWIN

我正在尝试在WebAPI项目中将SimpleInjector与OWIN结合使用。但是,ConfigureAuth中的以下行失败app.CreatePerOwinContext(container.GetInstance);异常(exception)情况是ApplicationUserManager注册为“WebAPI请求”生活方式,但该实例是在WebAPI请求的上下文之外请求的。我正在使用container.RegisterWebApiRequest();在容器初始化中。(如果我使用Register而不是RegisterWebApiRequest不会有任何异常(exception),但

c# - 你如何在 LINQ TO SQL 中按多列分组?

如何在LINQTOSQL中按多列分组?db.Table.GroupBy(a=>a.column1.ToString()+a.column2.ToString())看起来很丑,而且性能很差,我什至不知道它是否有效。哪种方法正确? 最佳答案 尝试按匿名类型分组:groupbynew{item.Col1,item.Col2}然后您将能够访问Key.Col1等 关于c#-你如何在LINQTOSQL中按多列分组?,我们在StackOverflow上找到一个类似的问题:

c# - 依赖注入(inject)容器?它有什么作用?

我一直在阅读有关DI的资料,它似乎是一个足够简单的概念。我没有得到的是容器。假设我想创建自己的容器。使用了像“检测”这样的动词,但我不明白容器是如何“检测”到一个新的依赖对象已创建并知道注入(inject)它的依赖项的。在我看来,容器就像是一家美化的工厂。任何人都可以解释容器的实际实现方式,或者可以为我指出一种资源吗?谢谢! 最佳答案 这取自WindsordocumentationInversionofControlInversionofControlisaprincipleusedbyframeworksasawaytoallow

c# - 通过 Entity Framework 将表值类型传递给 SQL Server 存储过程

我在SQLServer中创建了一个用户定义的表类型:CREATETYPEdbo.TestTypeASTABLE(ColumnAint,ColumnBnvarchar(500))我正在使用存储过程将记录插入数据库:createprocedure[dbo].[sp_Test_CustomType]@testingTestTypeREADONLYasinsertinto[dbo].[myTable]selectColumnA,ColumnBfrom@testing我想使用EF来执行这个存储过程,但问题是:如何将用户定义的表传递给存储过程?我尝试将存储过程添加到模型中,但我无法在更新的上下文中

c# - 当数据库中的数据发生更改时,LINQ to SQL 不会更新

我遇到这个问题,在数据库上更新字段(比如表MyTable中的Field3)后,MyTable.Field3(在C#中)仍然返回旧值。我怀疑有一些缓存......?我如何强制它:从数据库读取值?或者更新MyTable类中的值?或者有什么我想念的吗?我是LINQ新手提前谢谢你。 最佳答案 DataContext.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues,entity);如果您想刷新整个实体集,最简单的方法可能是只创建一个新的DataContext并重新查询所有

c# - 多次执行相同的 SQL 查询时重用 SqlCommand 是否更好?

当使用相同的查询但不同的参数查询数据库时,是否更好:一次性完成,还是创建两个单独的查询?单次使用示例:using(SqlCommandaddProduct=newSqlCommand(@"insertinto[Products].[Products]([Name],[Price])values(@name,@price)",sqlConnection)){//Insertthefirstproduct.addProduct.Parameters.AddWithValue("@name","Product1");addProduct.Parameters.AddWithValue("@p