我正在使用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中,主键是"CustomerId“列。表tbAdmin的主键是"AdminId“列。因为User类有一个名为"Id“的属性,所以我不能进行更新。
当你在tbCustomer表上进行更新时,系统会获取"Id“属性并输入"CustomerId”列,有没有什么方法可以映射到这一点?tbAdmin也是如此。我要他把"Id“放在"AdminId”里。
发布于 2014-12-10 05:35:19
如果不能重命名类中的属性,那么最好的选择是在更新中使用,而不是传递对象。您的示例如下所示
db.tbCustomer.UpdateById(Id: 1,
Username: "teste",
...);https://stackoverflow.com/questions/27389017
复制相似问题