是否可以重载lambda表达式
本文关键字:lambda 表达式 重载 是否 | 更新日期: 2023-09-27 18:14:06
我有以下表达式,它执行一些实体(entityframework)到业务对象的映射
internal static Expression<Func<CardholderEntity, Cardholder>> ExpressionMap = entity => new Cardholder
{
Id = entity.Id,
CardholderNo = entity.CardholderNo,
};
但是,当我使用不同的参数创建另一个lambda表达式时:
internal static Expression<Func<AnotherCardholderEntity, Cardholder>> ExpressionMap = entity => new Cardholder
{
Id = entity.AnotherId,
CardholderNo = entity.AnotherCardholderNo,
};
在ExpressionMap下面有一个红色下划线表示member with same name already declared
这是可能的,或者有什么工作围绕这个?
假设我有数百个不同实体到业务对象的表达式映射,我不想为它们中的每一个都想出那么多不同的名称
我不认为这与lambda有任何关系。你所做的基本上相当于:
internal static int x = 5;
internal static string x = "five";
这显然是行不通的。
你甚至可以去掉lambda,它仍然不能工作:
internal static Expression<Func<CardholderEntity, Cardholder>> ExpressionMap = null;
internal static Expression<Func<AnotherCardholderEntity, Cardholder>> ExpressionMap = null;
解决方案取决于应用程序的体系结构和目标是什么。但一种选择是根据类型保存它们的字典。但我不确定这是否适合你。