将 EF Core 2.2 升级到 EF Core 3.0 后,我们面临一个主要的性能问题。想象一个具有单个集合导航属性和数百个字段的简单数据模型(现实看起来更暗):
public class Item
{
[Key]
public int ItemID {get;set;}
public ICollection<AddInfo> AddInfos {get;set;}
... // consisting of another 100+ properties!
}
Run Code Online (Sandbox Code Playgroud)
和
public class AddInfo
{
[Key]
public int AddInfoID {get;set;}
public int? ItemID {get;set;}
public string SomePayload {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
在项目检索期间,我们查询如下:
...
var myQueryable = this._context.Items.Include(i => i.AddInfos).Where(**some filter**);
... // moar filters
var result = myQueryable.ToList();
Run Code Online (Sandbox Code Playgroud)
直截了当,直到这一刻。
在EF 2.2,在获取两个单独的查询,一个用于可查询的结果Item,一个是AddInfo-水平。这些查询通常获取 10.000items和大约 250.000 AddInfos。
在EF核心3.0然而,正在生成一个单一的查询,左接合 …
我最近被分配到一个c ++项目,虽然我不是一个c ++开发人员.我被提供为Visual Studio 2010 Professional作为IDE.所以我试了一下.
我要编写一个c ++动态库(*.dll),它包含两个静态库(*.lib).静态库是我们几年前从另一家公司购买的第三方库.使用dumpbin /header ...cmd调用,我可以说两个静态库都有以下文件头值:
14C machine (x86)
Run Code Online (Sandbox Code Playgroud)
我让这个任务适用于Win32解决方案平台.我将头文件和库添加到项目中.通过#pragma comment(lib, ...)在.cpp中编写两个语句来包含库我需要函数.工作就像一个魅力.示例函数如下所示:
extern "C" void OURFreeStringBuf(Cm_StringBuf *sbuf)
{
FreeStringBuf(sbuf); // the call to the static library
}
Run Code Online (Sandbox Code Playgroud)
此动态库也将用于x64体系结构中.所以我尝试将解决方案平台设置为x64.现在,每次调用一个静态库函数时都会出现以下错误(没有进行代码更改或进行其他配置更改):
error LNK2001: unresolved external symbol "..."
Run Code Online (Sandbox Code Playgroud)
然后是总结错误:
error LNK1120: 29 unresolved external links
Run Code Online (Sandbox Code Playgroud)
这些错误可能是尝试在x64 dll中链接x86 lib文件的结果吗?有没有机会使用提供的静态库完成此任务?
非常感谢你提前.