【发布时间】:2010-07-20 21:01:00
【问题描述】:
我正在使用新的 EF4 CTP4,尽管我认为这与此没有太大关系。我正在尝试建立一个可以自动为我们的数据库添加可审计字段的系统。我正在尝试做的是结合以下两个表达式
a => new
{
a.CreatedBy,
a.CreatedTime,
a.UpdatedBy,
a.UpdatedTime
}
和
a => new
{
a.Id,
a.Name,
}
所以结果等价于
a => new
{
a.Id,
a.Name,
a.CreatedBy,
a.CreatedTime,
a.UpdatedBy,
a.UpdatedTime
}
我需要的结果是一个表达式
我不太确定这是否可行,但我们将不胜感激。
【问题讨论】:
-
EF4 已作为 .NET 4.0 的一部分正式发布。
-
我指的是 ADO.Net Feature CTP4,它允许代码优先/仅代码 ef 开发
-
您想要一个具有以下签名的方法,对吗?
Expression<Func<T,AuditObject>> ProjectToAuditObject<T>() where T: IAuditable其中AuditObject包含必需的属性(Id、Name等)。 -
不完全是,我的 T 对象已经具有上面显示的所有属性,对象需要是匿名类型。我正在尝试轻松地将映射添加到我的可审计字段的数据库中。如果您已播种 ef4 ctp。这是我试图调用的实际代码
-
MapSingleType(AuditablePropertyMap.Map
(a => new { a.Id, a.Name })).ToTable("dbo.Teams");其中 auditablePropertyMap 看起来像这样 public static Expression > Map (Expression > propertyMap) where T : IAuditable { Expression > expr = (a => 新 { a.CreatedBy, a.CreatedTime, a.UpdatedBy, a.UpdatedTime }); //这里要做什么来合并两个表达式的成员
标签: linq entity-framework