C# 实体框架-循环更新属性
我试图找到一种方法来循环遍历EF对象的属性,并更新这些属性的值。更具体地说,我有50个字段,其中最多有50个下拉列表。所有50个可能需要也可能不需要填充 为了解决这个问题,我有一个中继器,可以创建多达50个DDL。用户将选择每个值,然后按下更新按钮。我在中继器中循环遍历项目,并且可以记录我在中继器中的迭代次数。我还想使用此计数来了解需要更新的字段。例如,DDL1=FIELD1,DDL2=FIELD2,…) 下面是我正在尝试做的一个例子:C# 实体框架-循环更新属性,c#,.net,asp.net,entity-framework,properties,C#,.net,Asp.net,Entity Framework,Properties,我试图找到一种方法来循环遍历EF对象的属性,并更新这些属性的值。更具体地说,我有50个字段,其中最多有50个下拉列表。所有50个可能需要也可能不需要填充 为了解决这个问题,我有一个中继器,可以创建多达50个DDL。用户将选择每个值,然后按下更新按钮。我在中继器中循环遍历项目,并且可以记录我在中继器中的迭代次数。我还想使用此计数来了解需要更新的字段。例如,DDL1=FIELD1,DDL2=FIELD2,…) 下面是我正在尝试做的一个例子: using (Data.Entities dataCont
using (Data.Entities dataContext = new Data.Entities)
{
var efObject = dataContext.EFData.Where(c => c.ID = [SOMEID]).First();
int posCount = 0;
foreach (RepeaterItem rep1 in repeaterControl.Items)
{
DropDownList ddlControl= (DropDownList)rep1.FindControl("ddlControl");
//Here is where I need to update a field
//Something like: efObject.Field# = ddlControl.SelectedValue;
}
}
是否有任何方法可以动态创建需要更新的属性名称
是否有可以通过索引访问的属性集合
这和我应该怎么做有点接近吗
我们将非常感谢您的任何帮助。谢谢。你可以这样做
var properties = typeof(EFType).GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (var property in properties)
{
var control = (DropDownList)rep1.FindControl("ddlControl" + property.Name);
property.SetValue(efObject, control.SelectedValue, null);
}
SelectedValue
是字符串。因此,如果需要,您需要注意类型转换。完美。这正是我需要的。注意,必须为SetValue方法的第三个参数添加一个空值。