访问实体[Table]的属性[Columns],如数组元素,并使用EF插入新行
本文关键字:EF 新行 插入 数组元素 实体 属性 Columns 访问 Table | 更新日期: 2023-09-27 18:20:01
问题标题可能会令人困惑,因为我找不到合适的句子来说明我的问题。我有一个实体,它包含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.
}