小编Lie*_*ers的帖子

IEnumerable <>到IList <>

我正在使用Linq查询我的数据库并返回一个通用的IList.

无论我尝试什么,我都无法将IQueryable转换为IList.

这是我的代码.

我不能写比这简单,我不明白为什么它不起作用.

public  IList<IRegion> GetRegionList(string countryCode)
{
    var query = from c in Database.RegionDataSource
                where (c.CountryCode == countryCode)
                orderby c.Name
               select new {c.RegionCode, c.RegionName}; 

     return query.Cast<IRegion>().ToList(); 
}
Run Code Online (Sandbox Code Playgroud)

这会返回一个包含正确数量的项目的列表,但它们都是空的请帮忙,我现在已经开了几天了

c# linq ienumerable

16
推荐指数
2
解决办法
1万
查看次数

生成GUID

我想在我的.net应用程序中使用GUID,它使用SQL Server.我应该编写一个存储过程,在每个输入的记录上生成GUID,还是应该从应用程序直接生成它.

提出问题的原因(如果错误纠正了我):

我(作为/ pre)sume:

从数据库生成GUID时,您可以假设数据库会记住以前生成的GUID,因为应用程序很难记住它.

sql-server guid

13
推荐指数
2
解决办法
1万
查看次数

GetRef 的内存消耗(垃圾收集)随 KB4525236 改变

在我们的 Windows 2016 服务器/Windows 10 客户端上安装KB4525236后,我们遇到了内存不足问题。此安全修复程序似乎已经改变了通过GetRef.

预 KB4525236

在通过GetRef将实例变量设置为垃圾收集器调用的函数中创建的每个实例nothing

发布 KB4525236

在调用 through 的函数中创建的每个实例都GetRef保留在内存中,并且只有在整个函数完成时才会垃圾回收。在循环中创建实例时,这会快速累加并导致内存不足,尤其是在 32 位进程中。

问题

  • 我们在网上找不到任何相关内容,因此我们希望得到遇到相同问题的其他人的确认。
    编辑从头开始:是相同的问题,但目前还没有解决方案
    (自 KB4524570(2019 年 11 月 12 日)Windows 10 1903 以来的 vbscript.dll class_terminate 错误)
  • 如果有人可以验证并知道可行的解决方案,那就太棒了。

POC

在安装了 KB4525236 的设备上运行的以下脚本显示了垃圾收集的不同之处

  • 直接调用:只有第一个实例被销毁才会创建第二个实例(这是我们想要的行为)
  • 通过调用GetRef:在销毁第一个实例之前创建第二个实例,因此有两个实例使用内存。

另存为:KB4525236.vbs
运行为:wscript KB4525236.vbs

Dim Name, Log

Class IDummyInstance
  Dim FName
  Sub Class_Initialize
    FName = Name
    Log …
Run Code Online (Sandbox Code Playgroud)

vbscript null garbage-collection memory-management reference-type

13
推荐指数
2
解决办法
393
查看次数

变更数据捕获性能损失是否受限于启用CDC的表?

我已经读过,启用Change Data Capture显然会对数据库性能产生影响.此性能损失是否仅影响已启用CDC的表,还是会影响整个数据库中的所有操作

在我的情况下,我正在使用SSIS并且有大量数据移入和移出临时数据库.我在系统中也有一些用于转换的查找表.我希望使用CDC作为审核这些参考表的更改的手段(而不是导入的数据).我作为ETL的一部分运行的主要查询访问这些参考表但不更改它们,所以我试图弄清楚是否仍会有明显的性能损失?

谢谢

sql sql-server change-data-capture sql-server-2008

11
推荐指数
1
解决办法
7058
查看次数

在SQL Server中添加+ - 1年

我尝试选择当前年份在+1和-1之间的年份模型的产品.我只希望年份(2011年)不是完整的日期和时间.

SELECT ProductName FROM tblProduct WHERE Year BETWEEN 
year(getdate()+1) AND year(getdate()-1)
Run Code Online (Sandbox Code Playgroud)

不起作用,但类似的东西可能......

sql sql-server sql-server-2008

11
推荐指数
2
解决办法
3万
查看次数

为什么难以反汇编本机Win32,但很容易拆解.NET应用程序?

为什么拆分原生Win32图像(例如用C/C++构建)的里程比拆卸.NET应用程序更困难?

主要原因是什么?因为什么?

.net c# c++ winapi native

11
推荐指数
3
解决办法
1690
查看次数

在进行TDD时发现其他对象

我正在尝试练习TDD.

我的理解是TDD应该是这样的

  1. 为我要开发的接口/类写一个测试列表.
  2. 从我的测试列表中最简单的未实现的测试开始.
  3. 编写测试,还没有实现代码.
  4. 编写类的接口以使代码编译.
  5. 运行测试导致一个失败的测试.
  6. 编写实现测试通过.
  7. 重构我所做的混乱.
  8. 转到2.

遇到的问题是编写实现或进行重构时.我经常得出结论,我刚写的实现应该委托给另一个类.

在这一点上真正的TDD应该怎么做?

  1. 将现有的测试列表单独保留一段时间,并为新发现的类创建一个新的测试列表(在实现新的类别时,同样的问题可以表现出来)
  2. 转到基于交互的测试方法并模拟新类,继续使用您正在处理的类的测试用例,稍后再回来创建模拟类的正确实现.
  3. 这种情况不应该出现.我可能还没有充分考虑我的初始设计.(但这不会破坏TDD的目的之一吗?!).

我很想知道其他人如何处理这些情况.

testing tdd

10
推荐指数
2
解决办法
249
查看次数

使用Supports()函数和通用接口类型

我刚刚尝试在Delphi 2009中首次使用泛型,并且对如何使用泛型类型作为Supports函数的输入感到困惑,该函数用于查看对象是否实现了给定的接口.我已经创建了一个小样本来说明问题.

给出以下类型和效用函数:

IMyInterface = interface
['{60F37191-5B95-45BC-8C14-76633826889E}']
end;

TMyObject = class(TInterfacedObject, IMyInterface)
end;

class function TFunctions.GetInterface<T>(myObject: TObject): T;
var
  specificInterface: T;
begin
  // This would compile, but looses the generic capability
  //Supports(myObject, IMyInterface, specificInterface);

  // This results in compile errors
  Supports(myObject, T, specificInterface);

  result := specificInterface;
end;
Run Code Online (Sandbox Code Playgroud)

和以下代码片段:

class procedure TFunctions.Test;
var
  myObject: TMyObject;
  myInterface: IMyInterface;
begin
  myObject := TMyObject.Create;

  myInterface := GetInterface<IMyInterface>(myObject);
end;
Run Code Online (Sandbox Code Playgroud)

我希望没有问题,但我得到以下编译时错误:

[DCC错误] GenericExample.pas(37):E2029'('预期但','找到[DCC错误] GenericExample.pas(37):E2014预期语句,但找到类型'T'的表达式

当用作函数的实际参数时,我不确定编译器期望我用T做什么.

我搜索了很多,并没有能够破解这个.我的一部分怀疑如果我能理解在编译期间接口名称如何转换为IID:TGUID类型,当使用具体的接口名称时,我可以取得一些进展,但这也避开了我.

任何帮助深表感谢.

delphi generics interface

10
推荐指数
1
解决办法
6722
查看次数

如何在监控数百个实时设备的同时使我的应用程序表现良好?

我需要在Delphi中开发一个实时(即,每秒至少请求和接收一次信息)监视应用程序,它监视多个远程设备(可能是数百个).通过TCP/IP进行通信.

我正在寻找建议开发这个应用程序,避免100%的CPU消耗,并尽量减少使用的RAM量.换句话说,我希望我的应用程序保持响应,而不是阻止系统或消耗所有资源.

我主要担心的是使用线程来监控每个远程设备.我的应用程序可以创建的线程数是否有限制?可以使用低优先级或中优先级启动线程以最小化CPU消耗吗?

关于最佳内存使用的建议也是受欢迎的.

delphi multithreading delphi-xe

10
推荐指数
1
解决办法
341
查看次数

如何在TextView中设置格式化的JSON响应字符串?

如何显示格式类似的JSON响应字符串json.parser.online.fr

例如:如何在textview中显示以下代码?

{
    "age":100,
    "name":"mkyong.com",
    "messages":["msg 1","msg 2","msg 3"]
}
Run Code Online (Sandbox Code Playgroud)

PS:最好是彩色格式.

简而言之 ..

1.如何格式化和显示JSON字符串?
2.如何格式化和显示Java代码?

java android json textview

10
推荐指数
2
解决办法
6731
查看次数