Tag: linq expressions

LINQ的Expression.Quote方法的目的是什么?

MSDN文档指出: Expression.Quote 方法创build一个UnaryExpression,它表示具有typesExpression的常量值的expression式。 我已经能够通过使用Expression类手动构build谓词expression式来构build用于LINQ查询的谓词expression式,但从来没有遇到过Expression.Quote的需求。 何时以及为什么要使用这个? 从我看到的LINQexpression式中,他们似乎只是在不添加任何值的情况下包装现有的expression式。 Quote方法/节点types的用途是什么?

为什么有一些对象属性UnaryExpression和其他MemberExpression?

对我的答案select使用lambda而不是string属性名称问题的模型属性 ,想要将属性添加到集合,如下所示: var props = new ExportPropertyInfoCollection<JobCard>(); props.Include(model => model.BusinessInstallNumber).Title("Install No").Width(64).KeepZeroPadding(true); props.Include(model => model.DeviceName).Title("Device").Width(70); props.Include(model => model.DateRequested).Title("Request Date").Format("{0:dd/MM/yyyy}").Width(83); 我在Include方法中编写了下面的代码: public class PropertyCollection<T> { public void Include(Expression<Func<T, object>> expression) { var memberExpression = expression.Body as MemberExpression; if (memberExpression != null) { var pes = new ExportPropertyInfoBuilder {Property = new ExportPropertyInfo {Property = memberExpression.Member as PropertyInfo}}; Properties.Add(pes.Property.Property.Name, […]

如何使用EF 4.3中的复杂键在AddOrUpdate中播种数据

我正尝试用一些testing数据来开发一个开发数据库。 我已经使用了context.People.AddOrUpdate(p => p.Id, people)); 取得很大的成功。 我有另外一张桌子,我需要种子,其中我不知道主键。 例如,我想要基于First和Last名称匹配的AddOrUpdate。 我不确定如何正确写入expression式。 context.People.AddOrUpdate(p => p.FirstName && p.LastName, people); 显然是不正确的,但我希望它传达了我正在寻找的解决scheme。

将Linqexpression式“obj => obj.Prop”转换为“parent => parent.obj.Prop”

我有一个现有的expression式typesExpression<Func<T, object>> ; 它包含像cust => cust.Name这样的值。 我也有一个types为T的字段的父类。 我需要一个方法,接受上述作为参数,并生成一个新的expression式,父类( TModel )作为参数。 这将被用作MVC方法的expression式参数。 因此, cust => cust.Name变为parent => parent.Customer.Name 。 同样, cust => cust.Address.State成为parent => parent.Customer.Address.State 。 这是我的初始版本: //note: the FieldDefinition object contains the first expression //described above, plus the MemberInfo object for the property/field //in question public Expression<Func<TModel, object>> ExpressionFromField<TModel>(FieldDefinition<T> field) where TModel: BaseModel<T> { var […]