我有一个类型,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)
我怎样才能改善这个?我很抱歉,如果这是重复的,那里有大量的反思线程......似乎这是一个非常热门的话题.
这可能是一个微不足道的问题但是:由于ADO.NET实体框架会自动跟踪更改(在生成的实体中)并因此保留原始值,我如何回滚对实体对象所做的更改?
我有一个表单,允许用户在网格视图中编辑一组"客户"实体.
现在我有两个按钮"Accept"和"Revert":如果单击"Accept",我会调用Context.SaveChanges()并将更改的对象写回数据库.如果单击"恢复",我希望所有对象获取其原始属性值.那个代码是什么?
谢谢
我的数据库中的许多表都需要有一个"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单个实体的,但我不能工作,如何让所有跟踪的实体的列表.
我该怎么做呢?