繁体   English   中英

实体框架 - 循环通过属性进行更新

[英]Entity Framework - Loop through properties for update

我正在尝试找到一种方法来遍历 EF object 的属性并更新这些属性的值。 更具体地说,我有 50 个字段,最多由 50 个下拉列表填充。 所有 50 个可能需要也可能不需要填充。

为了解决这个问题,我有一个可以创建多达 50 个 DDL 的中继器。 用户将 select 的值换成每一个,然后按下更新按钮。 我正在遍历转发器中的项目,并且可以计算我在转发器中正在进行的迭代。 我还想使用此计数来了解我需要更新的字段。 例如 DDL1 = FIELD1, DDL2 = FIELD2, ....)。

这是我正在尝试做的一个例子:

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是字符串。 因此,如果需要,您需要处理类型转换。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM