2011-10-18 58 views
0

我有这样的代码:错误时创建一个表达式

public class InputMapper : BaseMapper<Input, InputDTO> 
{ 
    private Guid _CompanyId; 
    public InputMapper(Guid companyId) 
    { 
     _CompanyId=companyId; 
    } 

    public override Expression<Func<InputDTO, Input>> ToDomain() 
    { 
     return x=> new Input() 
     { 
      CompanyId => this._CompanyId, <--- HERE I GET AN ERROR 
      Id = x.Id, 
      Name = x.Name, 
      Deduction = x.Deduction 
     }; 
    } 
} 

为什么我得到错误的标记线:

Invalid initializer member declarator 

有什么解决方法吗?

+1

注意,你的构造函数是向后的。你想分配_CompanyId公司ID的价值,是吗? – Brandon

+0

@Brandon:当然你是对的。 – Naor

回答

3

你已经使用了lambda表达式,在这里我怀疑你的意思,只是初始化属性:

CompanyId => this._CompanyId, 

应该

CompanyId = this._CompanyId, 

(还要注意布兰登的评论 - 在构造函数赋值是错误的方式。)

1

我认为它应该只是

return x=> new Input() 
{ CompanyID = this._CompanyID, .... 

你不希望为返回对象的CompanyID成员分配一个lambda。

+0

我不明白你的观点。你有什么建议? – Naor