C# 创建表达式时出错

C# 创建表达式时出错,c#,.net,linq,C#,.net,Linq,我有以下代码: public class InputMapper : BaseMapper<Input, InputDTO> { private Guid _CompanyId; public InputMapper(Guid companyId) { _CompanyId=companyId; } public override Expression<Func<InputDTO, Input>> To

我有以下代码:

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
        };
    } 
}
?


有什么解决方法吗?

您使用了lambda表达式,我怀疑您只是想初始化一个属性:

 CompanyId => this._CompanyId,
应该是

 CompanyId = this._CompanyId,

(还要注意Brandon的评论-构造函数中的赋值是错误的。)

您使用了lambda表达式,我怀疑您只是想初始化一个属性:

 CompanyId => this._CompanyId,
应该是

 CompanyId = this._CompanyId,

(还要注意Brandon的评论-构造函数中的赋值是错误的。)

我认为应该是这样的

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

您不希望将lambda分配给返回对象的CompanyID成员。

我认为应该这样做

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

您不希望将lambda分配给返回对象的CompanyID成员。

请注意,您的构造函数分配是向后的。你想给_CompanyId分配CompanyId的值,是吗?@Brandon:你当然是对的。旁注,你的构造函数赋值是反向的。你想给_CompanyId分配CompanyId的值,是吗?@Brandon:你当然是对的。