Simple.Data - 主键映射



我正在使用Simple.Data,我有一个问题。

我有以下课程:

public abstract class User
{
    public int Id { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }
    public string Salt { get; set; }
}
public class Customer : User
{
    public string Email { get; set; }
}
public class Admin : User
{
    public string Name { get; set; }
    public bool IsActive{ get; set; }
}

还有一个在数据库中执行操作的类:

public class Manager
{
    public string ConString { get; set; }
    public Manager()
    {
        ConString = ConfigurationManager.ConnectionStrings["Test"].ConnectionString;
    }

    public void CustomerUpdate()
    {       
        var obj = new Customer()
        {
            Id = 1,
            Username = "teste",
            Password = "teste",
            Salt = "",
            Email = "teste@teste.com"
        };
        var db = Database.OpenConnection(conString);
        db.tbCustomer.Update(obj);
    }
    public void AdminUpdate()
    {           
        var obj = new Admin()
        {
            Id = 1,
            Username = "teste",
            Password = "teste",
            Salt = "",
            Name = "teste",
            IsActive = true             
        };
        var db = Database.OpenConnection(conString);
        db.tbAdmin.Update(obj);
    }
}

但是,我有一个问题:

在我的数据库中,在 tbCustomer 表中,主键是"客户 ID"列。而表的主键 tbAdmin 是"管理员 ID"列。由于 User 类具有一个名为"Id"的属性,因此我无法进行更新。

当您在 tbCustomer 表上更新时,我有什么方法可以映射,系统采用"Id"属性并进入"客户 ID"列?对于 tbAdmin 也是如此。我希望他把"Id"放在"AdminId"中。

如果无法重命名类中的属性,则最佳选择最有可能在更新中使用命名参数,而不是传递对象。你的一个例子是

db.tbCustomer.UpdateById(Id: 1, 
                         Username: "teste",
                         ...);

相关内容

  • 没有找到相关文章

最新更新