与所有实体共享基类按表达式返回Id属性

时间:2014-08-11 19:18:17

标签: c# lambda

这可能是不可能的,但我们有一个现有的数据库,其中所有Id属性都是附加了Id的表名。我想将所有实体更改为从BaseEntity类继承,并在其上有一个名为Id的属性,并在构造函数中指定属性。例如:

public class BaseEntity
{
    public int Id { get; set; }
}

public class User : BaseEntity
{
    public User() : base(x => x.UserId)
    {}

    public int UserId { get; set; }
}

有没有办法让这个工作,因为我尝试过的任何东西都不会编译。非常感谢

2 个答案:

答案 0 :(得分:0)

如果我理解正确你想要这样的事情:

public class BaseEntity
{
    public int Id { get; set; }

    public BaseEntity(int id)
    {
       Id = id;
    }
}

public class User : BaseEntity
{
    public User(int id) : base(id)
    {
        UserId = id;
    }

    public int UserId { get; set; }
}

答案 1 :(得分:0)

public class BaseEntity
{
    public int Id { get; set; }
}

public class User : BaseEntity
{
    public User(int id) : base()
    {
        this.Id = id;
    }

    public int UserId { get { return base.Id; } set { base.Id = value; } }
}