是否可以修改IDbSet <t>如何将数据传输到POCO实体?</t>

时间:2012-02-09 06:36:35

标签: c# entity-framework

假设我有这个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持久保存到数据库时,我还需要能够执行相反的操作)

1 个答案:

答案 0 :(得分:2)

为什么不添加辅助属性?例如,使用部分类可以执行此操作:

public partial class Categories {
    public string CapitalName {
        return Name.ToUpper();
    }
}

然后你可以这样做:

Category category = categoryRepository.GetById(id);
string name = category.CaptialName;

或者您可以在类别上创建扩展方法。