Tag: linq

你怎么能处理与LINQ to SQL的IN子查询?

我有点卡在这个。 基本上我想要做一些像LINQ to SQL中的以下SQL查询: SELECT f.* FROM Foo f WHERE f.FooId IN ( SELECT fb.FooId FROM FooBar fb WHERE fb.BarId = 1000 ) 任何帮助将受到感谢。 谢谢。

如何从Action()返回值?

关于这个问题的答案将DataContext传递到Action()中 ,如何从操作(db)返回一个值? SimpleUsing.DoUsing(db => { // do whatever with db }); 应该更像是: MyType myType = SimpleUsing.DoUsing<MyType>(db => { // do whatever with db. query buit using db returns MyType. });

将谓词的expression式树变为另一种types

介绍 在我正在开发的应用程序中,每个业务对象有两种:“ActiveRecord”类和“DataContract”类。 所以例如,会有: namespace ActiveRecord { class Widget { public int Id { get; set; } } } namespace DataContract { class Widget { public int Id { get; set; } } } 数据库访问层负责在系列之间进行转换:可以告诉它更新一个DataContract.Widget ,它会奇迹般地创build一个具有相同属性值的ActiveRecord.Widget ,并保存它。 尝试重构此数据库访问层时,问题浮出水面。 问题 我想添加如下的方法到数据库访问层: // Widget is DataContract.Widget interface IDbAccessLayer { IEnumerable<Widget> GetMany(Expression<Func<Widget, bool>> predicate); } 以上是一个简单的通用的自定义谓词的“get”方法。 唯一感兴趣的是我传递一个expression式树而不是一个lambda,因为在IDbAccessLayer我正在查询一个IQueryable<ActiveRecord.Widget> ; 有效地做到这一点(认为LINQ到SQL)我需要传递一个expression式树,所以这个方法要求这样做。 […]

将SQL转换为Linq,并用null连接

我怎样才能正确地将这个SQL转换为LINQ select t1.ProgramID from Program t1 LEFT JOIN ProgramLocation t2 ON t1.ProgramID = t2.ProgramID where t2.ProgramID IS NULL 我尝试,但它不工作 var progy = ( from u in db.ProgramLocations join b in db.Programs on u.ProgramID equals b.ProgramID into yG from y1 in yG.DefaultIfEmpty() where u.ProgramID == null where u.ProgramID == null select u.ProgramID ).ToList(); 谢谢

linq中的.edmx和.dbml文件有什么区别?

在VS2008中,.edmx和.dbml文件有什么区别?在VS2008中哪个数据源是edmx或dbml的最佳select?在VS2008中使用edmx文件会出现什么问题?我可以在VS-2008中使用edmx吗?

我可以分裂一个IEnumerable两个布尔条件没有两个查询?

我可以使用LINQ和只有一个查询/ LINQ语句将IEnumerable<T>分成两个IEnumerable<T>吗? 我想避免两次遍历IEnumerable<T> 。 例如,是否可以合并下面的最后两条语句,所以allValues只被遍历一次? IEnumerable<MyObj> allValues = … List<MyObj> trues = allValues.Where( val => val.SomeProp ).ToList(); List<MyObj> falses = allValues.Where( val => !val.SomeProp ).ToList();

在Linq的Union Vs Concat

我有一个关于Union和Concat的问题。 我猜在List<T>情况下,两者的行为都是一样的。 var a1 = (new[] { 1, 2 }).Union(new[] { 1, 2 }); // O/P : 1 2 var a2 = (new[] { 1, 2 }).Concat(new[] { 1, 2 }); // O/P : 1 2 1 2 var a3 = (new[] { "1", "2" }).Union(new[] { "1", "2" }); // O/P : "1" "2" […]

计数属性与Count()方法?

使用集合我有两种方法来获取对象的数量; Count(属性)和Count()方法。 任何人都知道什么是关键区别? 我可能是错的,但是我总是在任何条件语句中使用Count属性,因为我假设Count()方法对集合执行某种查询,而Count必须在我得到之前就已经被分配了。 但这是一个猜测 – 我不知道如果我错了,性能是否会受到影响。 编辑:出于好奇然后,如果集合为空将Count()抛出exception? 因为我很确定Count属性只是返回0。

Linq OrderByDescending,null为空

我在我的数据库中有一个字段包含DateTime ?. 我想对结果进行sorting,使NULL显示在顶部,然后按DateTime递减,例如, null null 2012-04-01 2012-01-01 2011-09-04 原因是我在看过期date,虽然有些条目不会过期。

“LINQexpression式节点types”调用“不支持LINQ to Entities” – 难住!

在我的EF后来,我试图传递一个匿名函数作为我的Linq查询的一部分。 该函数将传入一个INT并返回一个BOOL(u.RelationTypeId是一个INT)。 以下是我的function的简化版本: public IEnumerable<UserBandRelation> GetBandRelationsByUser(Func<int, bool> relation) { using (var ctx = new OpenGroovesEntities()) { Expression<Func<UsersBand, bool>> predicate = (u) => relation(u.RelationTypeId); var relations = ctx.UsersBands.Where(predicate); // mapping, other stuff, back to business layer return relations.ToList(); } } 但是,我得到上述错误。 看起来我正在通过构build函数的谓词来正确地处理所有事情。 有任何想法吗? 谢谢。