小编The*_*hmu的帖子

Entity Framework Core 3.0 对包含集合导航属性的性能影响(笛卡尔爆炸)

将 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# performance entity-framework .net-core

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

编译链接x86静态库的x64动态库时LNK2001和LNK1120

我最近被分配到一个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文件的结果吗?有没有机会使用提供的静态库完成此任务?

非常感谢你提前.

c++ dll static-libraries visual-studio-2010 lnk2001

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