我有以下表达式,它将一些实体(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
是否有可能或有任何解决方法?
假设我有数百个不同实体对业务对象的表达式映射,我不想为每个实体提出许多不同的名称
答案 0 :(得分:3)
我认为这与lambdas没有任何关系。你所做的基本上相当于:
internal static int x = 5;
internal static string x = "five";
这显然不起作用。
你甚至可以摆脱lambdas,它仍然无效:
internal static Expression<Func<CardholderEntity, Cardholder>> ExpressionMap = null;
internal static Expression<Func<AnotherCardholderEntity, Cardholder>> ExpressionMap = null;
解决方案类型取决于应用程序的体系结构以及您的目标。但一种选择是根据类型保留它们的字典。但不确定这是否适合你。