草庐IT

c# - linq to sql递归查询

EmployeeIdNameManagerId------------------------------1Anull2Bnull3C14D35E2就用这张表,怎么写个linq查询(用linqtosql)递归取父数据。例如,如果选择的雇主ID为4,则应给出ID为4、3、1的员工列表谢谢。 最佳答案 这个.AsHierarchy()扩展方法可能有用:link.但是,这只能通过提供一种将结果放入链接对象的简单方法来实现。为此,它只会获取所有记录并运行自己的本地递归查询。如果您正在寻找将通过LINQtoSQL直接转换为递归SQL查询的LI

C# 6 空条件运算符不适用于 LINQ 查询

我希望它能工作,但显然IL生成的方式会抛出NullReferenceException。为什么编译器不能为查询生成类似的代码?在ThisWorks情况下,编译器生成的代码将表达式的其余部分短路,为什么它不能对LINQ查询情况做同样的事情?classTarget{publicChildTargetChild;}classChildTarget{publicint[]Values;}IEnumerableThisWorks(Targettarget)=>target.Child?.Values.Select(x=>x);IEnumerableThisDoesNotWork(Targetta

c# - LINQ 生成具有重复嵌套选择的 SQL

我是.NETEntityFramework的新手,我认为它很棒,但不知何故我遇到了这个奇怪的问题(抱歉是西类牙语,但我的程序是用那种语言编写的,无论如何这没什么大不了的,只是列或属性名称):我正在执行正常的LINQToEntities查询以获取UltimaConsulta列表,如下所示:varquery=fromucinbd.UltimasConsultasselectuc;顺便说一下,UltimasConsultas是一种观点。问题是LINQ正在为查询生成此SQL:SELECT[Extent1].[IdPaciente]AS[IdPaciente],[Extent1].[Nombre

c# - 在 LINQ 中选择多维数组

这个问题在这里已经有了答案:GenerateatwodimensionalarrayviaLINQ(1个回答)关闭8年前。我有一项任务需要将DataTable转换为二维数组。只需循环遍历行和列(请参见下面的示例)即可轻松做到这一点。privatestaticstring[,]ToArray(DataTabletable){vararray=newstring[table.Rows.Count,table.Columns.Count];for(inti=0;i我真正想做的是在LINQ中使用select语句来生成二维数组。不幸的是,在LINQ中似乎没有办法选择多维数组。是的,我知道我可以使

c# - 为存储过程创建可重用的 Linq To SQL

我正在处理一个需要使用LinqToSQL的新项目。我被要求创建一个可用于执行存储过程的通用或可重用的LinqtoSQL类。在ADO.Net中,我知道如何通过传递一个我想执行的字符串来做到这一点,我可以为每个需要运行的查询传递不同的字符串:SqlCommandcmd=newSqlCommand("myStoredProc",conn);//etc,etc我正在为如何在LinqToSQL中创建类似的东西而苦苦挣扎,如果可能的话。我创建了一个.dbml文件并向其中添加了我的存储过程。因此,我可以使用以下代码返回结果:publicListGetData(stringconnectName){M

c# - 如何在 LINQ-to-Entities 查询中使用自定义属性?

我有一个Post类,它是一个EntityFramework模型。它包含如下属性:publicboolShowable{get{returnthis.Public&&this.PublishedDate>DateTime.now}}我可以在这样的查询中使用它:frompindb.Postswherep.Showableselectp;但是当我有一个使用它的属性时,就像这样publicIEnumerableShowablePosts{get{returnfrompindb.Postswherep.Showableselectp;}}那我做不到:frompinShowablePostswhe

c# - 如何使用 F# lambda 创建 Linq 表达式树?

这是可以在C#中完成的操作-vartwo=2;System.Linq.Expressions.Expression>expr=x=>x*two;expr.Compile().Invoke(4);//returns8我希望在F#中做同样的事情。这是我尝试过的,但没有编译-lettwo=2letexpr=(funx->x*two):System.Linq.Expressions.Expression>expr.Compile().Invoke(4)//desiredtoreturn8也许可以预见,第2行编译失败并出现以下错误-"Thisfunctiontakestoomanyargumen

c# - 使用 LINQ,如何从列表中查找具有给定属性值的对象?

我有一个名为Questions的类。此Questions具有属性QuestionID和QuestionAnswer。在foreach中遍历此ListofQuestion时,我必须找到.QuestionID=12。如果我找到.QuestionID=12,那么我必须立即为.QuestionID=14的.QuestionAnswer="SomeText"赋值。我不想在.QuestionId=12'中再次迭代以找到.QuestionID=14`。有什么方法可以使用LINQ直接转到.QuestionID=14?例如:ForEachmQuestionAsQuestionIn_mQuestionsI

c# - 如何使用 LINQ 来避免嵌套循环?

我一直在阅读有关LINQtoObjects的文章,现在我的同事希望我向他们展示它。现在,我对运算符和语法选择有了一定的了解,但我听说您可以使用LINQ避免繁重的嵌套循环。不过,我很难想出一组很好的“之前和之后”代码list来证明这一点。我在Magennis的书中找到了使用和不使用LINQ进行排序和分组的一个很好的例子,他还有一个编写xml的例子。但是那些嵌套循环呢?考虑到我们通常需要一个或两个foreach循环来遍历查询结果,这甚至是一个现实的说法吗?如果有人能向我解释这个想法(最好有具体的例子),我将不胜感激。 最佳答案 假设您有

c# - 如何在 Linq to SQL 中添加日期

我正在编写这段代码。这里dt被输入到函数中,还有someint。Exp列是T-SQL日期列,通过Linq作为DateTime出现。return(fromaindataContext.TableOfAwherea.name=="Test"&&a.Exp.Value.AddDays(Convert.ToDouble(Someint))>=newDateTimeOffset(dt)selecta).First();在C#中,您可以将double值添加到日期时间。这意味着您可以增加1.5天。在T-SQL中,您只能添加1天,然后是12小时。您必须为每个部分添加一个int。因此,当Linq将Add