【发布时间】:2015-09-09 16:21:06
【问题描述】:
这是我从数据库中获取数据并使用 lambda 表达式进行更新的方法。
item _myItem = db.myDBContext.items.Where(x => x.id == 0).SingleOrDefault();
_myItem.field1 = "myValueForField1";
_myItem.field2 = "myValueForField2";
_myItem.field3 = "myValueForField3";
_myItem.field4 = "myValueForField4";
db.myDBContext.SubmitChanges();
这只是一个示例,我的表格有很多列。
如果我按照这种方式,我必须分配每一列 (field1,field2,..)。
如果我有 20 列,我必须编写 20 行代码。
我可以动态分配字段名称吗?
喜欢
_myItem[dynamicFieldName] = ...;
或者有什么办法让它变得更好?
我只想动态分配字段名称。
【问题讨论】:
-
带有
field1...field2...fieldN列的宽表本身就是一种反模式。您的表真的需要这样的结构吗? -
这只是一个简单的@Jamiec :),表有大约 10 个字段。我必须对其他表做同样的事情。
-
“如果我有 20 列,我必须写 20 行代码。” - 你没有,你有 10 列,你只需要 10 行代码。你打算花一个小时研究如何通过写 5 行来节省这 10 行,还是应该硬着头皮写 10 行?
-
当然@Jamiec,我可以为我的dataFields写10行代码,但正如我所说,我必须更新其他表。
-
@Jamiec :我认为给定的字段名称只是一个例子。谁没有在 20 列的表格上工作过?