相关疑难解决方法(0)

如何获取具有给定属性的属性列表?

我有一个类型,t我想获得具有该属性的公共属性列表MyAttribute.该属性标有AllowMultiple = false,如下所示:

[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
Run Code Online (Sandbox Code Playgroud)

目前我拥有的是这个,但我认为有更好的方法:

foreach (PropertyInfo prop in t.GetProperties())
{
    object[] attributes = prop.GetCustomAttributes(typeof(MyAttribute), true);
    if (attributes.Length == 1)
    {
         //Property with my custom attribute
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能改善这个?我很抱歉,如果这是重复的,那里有大量的反思线程......似乎这是一个非常热门的话题.

.net c# reflection

201
推荐指数
5
解决办法
10万
查看次数

撤消实体框架实体中的更改

这可能是一个微不足道的问题但是:由于ADO.NET实体框架会自动跟踪更改(在生成的实体中)并因此保留原始值,我如何回滚对实体对象所做的更改?

我有一个表单,允许用户在网格视图中编辑一组"客户"实体.

现在我有两个按钮"Accept"和"Revert":如果单击"Accept",我会调用Context.SaveChanges()并将更改的对象写回数据库.如果单击"恢复",我希望所有对象获取其原始属性值.那个代码是什么?

谢谢

.net entity-framework rollback

110
推荐指数
7
解决办法
8万
查看次数

从DbContext获取所有跟踪的实体?

我的数据库中的许多表都需要有一个"DateCreated"和"DateModified"列.我想在SaveChanges()调用时更新这些列.

我的所有模型对象都从类继承AbstractModel以允许这种行为.这个类看起来像这样:

public abstract class AbstractModel {
    public virtual void UpdateDates() { }
}
Run Code Online (Sandbox Code Playgroud)

然后,我计划覆盖UpdateDates()任何具有需要维护的子类DateCreated和子类DateModified.

要使用它,我需要能够获得DbContext正在跟踪的所有实体的列表,并UpdateDates()在对象被标记为Added或时调用它们Modified.

我似乎无法访问DbContext存储此信息的任何位置.我可以做dbContext.Entry(object).State,以获得EntityState单个实体的,但我不能工作,如何让所有跟踪的实体的列表.

我该怎么做呢?

c# entity-framework

16
推荐指数
2
解决办法
2万
查看次数

标签 统计

.net ×2

c# ×2

entity-framework ×2

reflection ×1

rollback ×1