草庐IT

SQL注入

全部标签

c# - 如何强制 LINQ to SQL 评估数据库中的整个查询?

我有一个完全可翻译成SQL的查询。由于未知原因,LINQ决定最后一个Select()在.NET中执行(而不是在数据库中),这导致对数据库运行大量额外的SQL查询(每个项目)。实际上,我发现了一种“奇怪”的方法来强制将完整翻译成SQL:我有一个查询(这是一个非常简化的版本,仍然没有按预期工作):MainCategories.Select(e=>new{PlacementId=e.CatalogPlacementId,Translation=Translations.Select(t=>new{Name=t.Name,//...}).FirstOrDefault()})它会产生大量的SQL

c# - 在 C# Web 应用程序中插入查询超时,从 SQL Server Management Studio 运行正常

我正在尝试让插入查询从我的C#网络应用程序中运行。当我从SQLServerManagementStudio运行查询时,插入查询大约需要五分钟才能完成。从应用程序运行时,它会在三十分钟后超时(是分钟,而不是秒)。我已经从VS调试器中获取了实际的SQL语句并从MgmtStudio运行它,它工作正常。所有这些都是在我的开发环境中运行的,而不是生产环境。查询正在进行时没有其他SQLServer事件。我正在使用SQLServer2008R2进行开发。MSVS2010Express,Asp.Net4.0。SQLServerMgmtStudio10。有一个从未回答过的类似问题:SQLserverti

c# - Linq to SQL 计数分组元素生成超时

我有一个看起来像这样的表:FruitID|FruitType23|2215|2256|1643|3我想通过FruitType获得一个名为TheFruitIDs的FruitIDs列表。这是我的:varTheCounter=(fromfinMyDC.FruitswhereTheFruitIDs.Contains(f.FruitID)groupfby0intoTheFruitsselectnewMyCounterMode(){CountType1=(int?)TheFruits.Where(f=>f.FruitType==1).Count()??0,CountType2=(int?)TheF

c# - 重构静态类以与依赖注入(inject)一起使用

我们需要在具有静态方法的代码中使用非托管库。我想在我的代码中将库操作作为依赖项引入。除了具有静态方法之外,该库还有一个初始化方法和一个设置方法,它们都是全局的。所以我不能只将它包装在一个实例类中,因为如果一个实例更改设置,所有其他实例都会受到影响,如果一个实例被初始化,所有其他实例将被重新初始化。我考虑过将其作为单例类引入。这样它将在一个实例类中,但只有一个实例,因此我不必担心更改设置或初始化。您如何看待这种方法?我对依赖注入(inject)模式还很陌生,我不确定单例模式是否是一个好的解决方案?对于类似的案例,您的解决方案是什么?编辑:初始化也需要一个参数,所以我不能只是锁定方法调用并

c# - SQL CLR 中的多线程缓存

是否有任何多线程缓存机制可以在SQLCLR函数中工作而不需要将程序集注册为“不安全”?同样描述了inthispost,简单地使用lock语句将在安全程序集上抛出异常:System.Security.HostProtectionException:AttemptedtoperformanoperationthatwasforbiddenbytheCLRhost.Theprotectedresources(onlyavailablewithfulltrust)were:AllThedemandedresourceswere:Synchronization,ExternalThreading

c# - 为什么 linq-2-sql 会创建额外的不必要的对象?

我在数据库中有一个简单的父子表CREATETABLE[Parent]([Id][int]IDENTITY(1,1)NOTNULL,[Name][nvarchar](256)NOTNULL)ALTERTABLE[Parent]ADDCONSTRAINT[PK_Parent_Id]PRIMARYKEY([Id])CREATETABLE[Child]([Id][int]IDENTITY(1,1)NOTNULL,[ParentId][int]NOTNULL,[Name][nvarchar](256)NOTNULL)ALTERTABLE[Child]ADDCONSTRAINT[PK_Child_

c# - C#中SQL Server存储过程的异步调用

是否可以通过C#异步调用SQLServer存储过程?我有一个写入特定数据库备份的存储过程(这可能需要很长时间才能完成),我想在Windows窗体中显示备份过程的进度(为此我使用http://www.wisesoft.co.uk/articles/tsql_backup_restore_progress.aspx).或者我应该使用Backgroundworker控件并在后台作业(自己的线程)中运行SP? 最佳答案 在您的SqlCommand中,您可以使用BeginExecuteNonQuery和EndExecuteNonQuery异步

c# - T-SQL 可以存储 ulong 的吗?

我想将C#.NETulong存储到T-SQL数据库中。我没有看到执行此操作的任何规定,因为SQLbigint具有与普通long相同的最小值/最大值。有什么办法可以做到这一点吗?或者捕获OverflowException是我唯一的希望? 最佳答案 这应该可以回答您的问题:http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/ff08c190-a981-4896-9542-3f64b95a84a2/您将使用BigInt,您只需要注意如何在C

c# - 跨多个线程的 Linq-to-SQL DataContext

如何跨多个线程处理Linq-to_SQLDataContext?我应该创建一个全局静态DataContext供所有线程使用并在最后提交更改,还是应该为每个线程创建一个Context并将该实例用于该线程内的所有内容? 最佳答案 DataContext不是线程安全的;直接从多个线程使用它会导致#fail;具有全局静态数据上下文会导致#fail并且会导致不受控制的内存增长(数据上下文包括身份管理器和每个获取对象的更改跟踪器;这只会增长随着时间的推移,随着越来越多的物体被触摸)理想情况下,数据上下文应该用于一个工作单元;旋转一个;做某事(在

c# - 模型类(实体)中的依赖注入(inject)

我正在使用EntityFrameworkCode-First构建ASP.NETCoreMVC应用程序。我实现了一个简单的存储库模式,为我创建的所有模型类提供基本的CRUD操作。我选择遵循docs中提供的所有建议。DI就是其中之一。在~~.NET5~~(6年后更新:.net5是.netcore1.0的alpha名称)依赖注入(inject)对于我们不直接使用的任何类都非常有效实例化(例如:Controller、数据存储库……)。我们只需通过构造函数注入(inject)它们,并在应用程序的Startup类中注册映射://SomerepositoryclasspublicclassMyRep