假设我有这个DBSet
public DbSet<Category> Categories { get; set; }
并在我的存储库中使用它:
public virtual T GetById(long id)
{
T t = dbset.Find(id);
return t.Deleted ? null : t;
}
我们还要说类别中有一个Name属性,该Category是一个POCO对象。
有没有办法修改数据库和POCO对象之间的Name内容?只是为了有一个例子,假设我想在我的Category POCO对象中大写Name的所有字母。所以,我可以在数据库中使用Categories.Name ='Books'(在这种情况下Categories是一个表),然后在发出如下命令之后使category.Name =“BOOKS”(其中category是POCO对象) / p>
Category category = categoryRepository.GetById(id);
有没有办法实现这个目标?在DBSet中是否有一种钩子,可以插入一个函数调用来转换被转移到POCO对象的数据?
(当然,在将POCO objet持久保存到数据库时,我还需要能够执行相反的操作)
答案 0 :(得分:2)
为什么不添加辅助属性?例如,使用部分类可以执行此操作:
public partial class Categories {
public string CapitalName {
return Name.ToUpper();
}
}
然后你可以这样做:
Category category = categoryRepository.GetById(id);
string name = category.CaptialName;
或者您可以在类别上创建扩展方法。