【发布时间】:2017-06-10 21:15:21
【问题描述】:
我有以下代码:
public abstract class AdvancedDeductionAbstractVM
{
public int ID { get; set; }
[Display(Name = "Driver Name")]
public string DriverName { get; set; }
public string Description { get; set; }
[Display(Name = "Date")]
[DisplayFormat(DataFormatString = "{0:d}")]
public DateTime DateTime { get; set; }
[Display(Name = "Amount")]
[DisplayFormat(DataFormatString = "{0:c}")]
public decimal Amount { get; set; }
}
public class AdvancedDeductionElementVM : AdvancedDeductionAbstractVM
{
}
public class AdvancesDeductionDetailVM : AdvancedDeductionAbstractVM
{
}
public class AdvancesDeductionDeleteVM : AdvancedDeductionAbstractVM
{
}
表达式:
private Expression<Func<AdvancesDeduction, T>> GetAdvancesDeductionAbstractExpression<T>() where T : AdvancedDeductionAbstractVM, new()
{
Expression<Func<AdvancesDeduction, T>> projection = i =>
new T()
{
ID = i.ID,
Amount = i.Amount,
DateTime = i.DateTime,
Description = i.Description,
DriverName = i.Driver.Name
};
return projection;
}
并使用它:
AdvancesDeductionDetailVM model = (from i in db.AdvancesDeductions
where i.ID == id.Value
select i)
.Select(GetAdvancesDeductionAbstractExpression<AdvancesDeductionDetailVM>()).FirstOrDefault();
AdvancesDeductionDeleteVM model = (from i in db.AdvancesDeductions
where i.ID == id.Value
select i).Select(GetAdvancesDeductionAbstractExpression<AdvancesDeductionDeleteVM>()).FirstOrDefault();
它有效,但我想将它添加到 Linq 到实体,而不是使用 Lambda 表达式。有什么使用方法吗?
【问题讨论】:
-
你想把它添加到linq到实体是什么意思
-
我想要喜欢(从 i in db.AdvancesDeductions where i.ID == id.Value select MyFunction);
-
不明白你的问题是什么?
标签: c# entity-framework linq linq-to-entities