关键词:
【中文标题】无法让外部连接在 EF 中工作【英文标题】:Can't get outer join to work in EF 【发布时间】:2012-07-29 23:45:39 【问题描述】:没关系,我用 join/into 语法解决了这个问题。也许这毕竟是必要的
我正在尝试让 Linq 外连接来对抗 EntitiyFramework。
public List<OSCDagbokDTO> FillDataForOSCDagbokSO(List<OSCDagbokDTO> oscdagboklista)
var kalla_idn = oscdagboklista.Select(k => k.Kalla_id.GetGuidOrNull()).Distinct().ToList();
var kallaLista = (from k in _gemensamEntityContext.Kalla
where kalla_idn.Contains(k.Kalla_id)
select new KallaDTO()
Kalla_id = k.Kalla_id,
KallaText = k.KallaText
).ToList();
var nyOSCDagbokLista = (from o in oscdagboklista
from k in kallaLista.DefaultIfEmpty()
where o.Kalla_id.GetGuidOrNull() == k.Kalla_id
select new OSCDagbokDTO()
Id = o.id,
Datum = o.Datum,
Enhet_id = o.Enhet_id,
Handelse = o.Handelse,
Kalla = k,
Kalla_id = o.Kalla_id,
).ToList();
return nyOSCDagbokLista;
第一个语句是从传入列表中的属性获取 id 列表。
第二个,从该列表创建 DTO 对象。
第三个,使用(如我所想的)外连接从传入列表中获取所有项目,与 DTO 列表(kallaLista)连接。我正在使用 DefaultIfEmpty(),我认为它不会从传入列表中过滤掉项目,但确实如此!
我没有使用“join”语法,因为我从各个网站都了解过,上面的语法应该没问题,我更喜欢它,即使它更老式。
我错过了什么,为什么当使用 DefaultIfEmpty() 时,传入列表中的项目不在 DTO 列表中时会被过滤掉?
【问题讨论】:
【参考方案1】:如果存在从父实体到子集合的导航属性,我是否可以补充一点,执行外部连接的方法非常简洁?
假设您有一个实体OSCDagbok
(我只是猜测单数形式),其导航属性为kallaLista
。然后你可以这样做:
from o in oscdagboklista
from k in o.kallaLista.DefaultIfEmpty() // mind the "o."
select new OSCDagbokDTO()
...
如果没有,您可以按照您的解决方案进行操作。 into
将 join
转换为 GroupJoin,这相当于外连接的 linq。
【讨论】:
我认为那是我错过的事情,而不是使用“o”。而是另一个列表!如何让 ScrollViewer 在 StackPanel 中工作?
...在以下WPFXAML中,ScrollViewer不起作用(它显示滚动条但您无法滚动,并且内容从窗口移到底部)。我可以将外部StackPanel更改为Grid,它会起作用。但是,在我复制以下代码的应用程序中,我 查看详情
如何让外部页面优惠券/优惠券表格在 OpenCart 中工作?
】如何让外部页面优惠券/优惠券表格在OpenCart中工作?【英文标题】:HowdoIgetanexternalpagecoupon/voucherformtoworkinOpenCart?【发布时间】:2012-08-3003:03:24【问题描述】:我的OpenCart环境中有另一个页面,比如说关于我们的页面,它有以下... 查看详情
无法让 DLookup 函数在 Access 2013 中工作
】无法让DLookup函数在Access2013中工作【英文标题】:CannotGetDLookupFunctiontoworkinAccess2013【发布时间】:2016-11-0607:59:23【问题描述】:我正在尝试让Dlookup功能在Access2013中工作,但我无法让它工作,这是我目前所拥有的:-我有一个名... 查看详情
无法让悬停导航在 IE8/9 中工作,在 FF/Chrome 中工作
】无法让悬停导航在IE8/9中工作,在FF/Chrome中工作【英文标题】:CannotgethovernavigationworkinginIE8/9,worksinFF/Chrome【发布时间】:2011-07-0213:22:07【问题描述】:我正在努力让我的摄影作品集网站在所有主要浏览器(IE8、FF、Chrome)上都... 查看详情
无法让二级路线在快递中工作
】无法让二级路线在快递中工作【英文标题】:Can\'tgetsecondlevelroutesworkinginexpress【发布时间】:2015-11-0616:50:31【问题描述】:很抱歉,我对node很陌生。我已经坚持了几个小时了。server.jsapp.use(express.static(__dirname+"/public"));app.get(\'/... 查看详情
无法让查询在 Angular 中工作
】无法让查询在Angular中工作【英文标题】:UnabletogetquerytoworkinAngular【发布时间】:2017-11-1818:14:45【问题描述】:我对Angular很陌生,我正在尝试制作一个使用REST服务并呈现结果的简单应用程序。当我尝试在Angular中使用查询命令... 查看详情
无法让 Firestore 快速入门在 Python 中工作
】无法让Firestore快速入门在Python中工作【英文标题】:CannotgetFirestoreQuickstarttoworkinPython【发布时间】:2019-04-0720:33:28【问题描述】:我在Python中关注了quickstartguide的Firestore,但由于收到以下错误消息,我无法让它运行:grpc._channe... 查看详情
无法让 css 模块在 Typescript Storybook 项目中工作
】无法让css模块在TypescriptStorybook项目中工作【英文标题】:Can\'tgetcssmodulestoworkwithinTypescriptStorybookproject【发布时间】:2021-01-0213:41:37【问题描述】:这是./storybook/main.js的当前配置,我似乎无法让任何css模块在我的故事书组件中... 查看详情
无法让闭包语法在 swift 4 中工作
】无法让闭包语法在swift4中工作【英文标题】:Cannotgetclosuresyntaxtoworkinswift4【发布时间】:2017-11-0817:02:09【问题描述】:我已经尝试了所有可能的语法变化,但完成处理程序总是在动画结束之前激活。我想我应该用别的东西代替... 查看详情
无法让 subl 命令在 OSX 终端中工作 [重复]
】无法让subl命令在OSX终端中工作[重复]【英文标题】:Can\'tgetsublcommandtoworkinOSXterminal[duplicate]【发布时间】:2016-06-2600:28:30【问题描述】:我正在尝试让sublcomand用于sublimetext3在终端命令行上工作,但在尝试了一些事情之后我无法... 查看详情
无法让 FFT 在 Octave 中工作
】无法让FFT在Octave中工作【英文标题】:Can\'tgetFFTtoworkinOctave【发布时间】:2012-10-2614:20:46【问题描述】:我一直在做一个(可能超级简单的)任务,其中一个步骤是获得傅里叶变换。我按照我大学的指导来转换波声whichcanbefoundh... 查看详情
无法让 doInBackground 在 AsyncTask 中工作
】无法让doInBackground在AsyncTask中工作【英文标题】:Can\'tgetdoInBackgroundtoworkinAsyncTask【发布时间】:2020-08-1502:15:23【问题描述】:我是AsyncTask的新手,所以如果我的问题很愚蠢,请提前道歉。长话短说,我有一个处理一些文件的方... 查看详情
无法让 curl 在 wamp 中工作
】无法让curl在wamp中工作【英文标题】:Can\'tgetcurlworkinginwamp【发布时间】:2012-10-1600:40:30【问题描述】:我是一个完整的PHP/wamp菜鸟,但我只是想让一些简单的代码工作。我正在使用一个库来帮助我使用OAuthforTwitter,并且一直在... 查看详情
无法让 $(this) 在 jQueryUI 自动完成中工作
】无法让$(this)在jQueryUI自动完成中工作【英文标题】:Can\'tget$(this)workinginjQueryUIautocomplete【发布时间】:2011-05-1623:43:40【问题描述】:我正在尝试使用jQueryUI创建一个通用的自动完成脚本。自动完成应该适用于每个:<inputtype=\'... 查看详情
无法让 double.TryParse 在 Linq 表达式树中工作
】无法让double.TryParse在Linq表达式树中工作【英文标题】:Unabletogetdouble.TryParsetoworkinLinqExpressionTree【发布时间】:2015-07-1021:49:48【问题描述】:我正在尝试使用Linq表达式为IQueryable数据源创建动态where子句。我无法让TryParse函数在... 查看详情
无法让 Ext.ux.form.SearchField 在 ExtJS 中工作
】无法让Ext.ux.form.SearchField在ExtJS中工作【英文标题】:Can\'tgetExt.ux.form.SearchFieldtoworkinExtJS【发布时间】:2014-06-1015:54:51【问题描述】:我似乎无法让SearchField在extJS中工作。我想在表格工具栏中实现它,并对我的表格存储对象执... 查看详情
无法让 @Secured 在 Spring MVC 中工作
】无法让@Secured在SpringMVC中工作【英文标题】:Can\'tget@SecuredworkinginSpringMVC【发布时间】:2013-01-0409:33:31【问题描述】:我正在使用SpringMVC来公开RESTful服务。我已经通过HTTPBasicAuthentication启用了身份验证,并且使用<security:htt... 查看详情
无法让 RestKit 在 Xcode 4.6 中工作
】无法让RestKit在Xcode4.6中工作【英文标题】:CannotgetRestKittoworkinXcode4.6【发布时间】:2013-02-1300:42:23【问题描述】:我正在尝试让RestKit工作,但我不断收到错误,这是Xcode4.6,目标iOS是6.1我正在遵循本指南:https://github.com/RestKit/R... 查看详情