访问实体[Table]的属性[Columns],如数组元素,并使用EF插入新行



问题标题可能会令人困惑,因为我找不到合适的句子来说明我的问题。我有一个实体,它包含60个属性[Columns]。现在我想插入这个实体。正常插入代码为:

tblEmployee objEmployee= new tblEmployee();
tblEmplyee.Name="abc"; // Col 1
tblEmplyee.Email="abc@abc.com"; // Col 2
tblEmplyee.S1="s1"; // Col 3
tblEmplyee.S2="s2"; // Col 4
.
.
.
tblEmplyee.S60="s60"; // Col 60
db.AddTotblEmployee(objEmployee);
db.SaveChanges(); 

但我有一个条件,我需要在S1到S60中可变地插入值。例如情况1:从S1到S17的值1、从S18到S50的值2和从S51到S60的值3。情况2:从S1到S11值1,从S11到S40值2,从S40到S43值3,从S44到S60值4。

这种模式每次都可能不同,并且取决于用户通过UI的输入。

有什么方法可以访问tblEmployee的类似列的数组索引吗?

    tblEmployee objEmployee= new tblEmployee();
    tblEmplyee.col["1"]="abc"; // Col 1
    tblEmplyee.col["2"]="abc@abc.com"; // Col 2
    tblEmplyee.col["3"]="s1"; // Col 3
    .
    .
    .

还是其他方式?

嗨,这是您可以使用的代码

System.Reflection.PropertyInfo[] properties = typeof(tblEmployee).GetProperties();
        tblEmployee objEmployee = new tblEmployee();
        for(int i=0;i<properties.Length;i++)
        {
            properties[i].SetValue(objEmployee, 1);//First param is obj and 2nd is value for the column which will be saved in db.
        }

最新更新