Linq2Sql通过变量创建引用实体列

时间:2010-01-09 08:50:04

标签: linq-to-sql

我有一个带字段的linq2sql类 WeekEnding1 WeekEnding2 WeekEnding3 WeekEnding4

我想使用for循环中的字段编写一些c#。

以此为例:

for(int i=1; i<=4; i++)
{
   Msgbox(myClass.WeekEnding + i)
}

我意识到不会工作但是会发生什么?

马尔科姆

1 个答案:

答案 0 :(得分:0)

除非你想用反射进入某事,否则这将:

MsgBox(myClass.WeekEnding1);
MsgBox(myClass.WeekEnding2);
MsgBox(myClass.WeekEnding3);
MsgBox(myClass.WeekEnding4);

你可以通过把它放在循环中来做你正在尝试做的事情:

PropertyInfo info myClass.GetType()
    .GetProperty("WeekEnding" + i.ToString(),
        BindingFlags.Public | BindingFlags.Instance);
MsgBox(info.GetValue(myClass, null));

但我推荐第一种方法!第二种方法必须在每次循环中找到有问题的属性,这会增加相当大的开销。

无论如何,您的基础数据模型听起来非常像它可能需要标准化 - 这是一种常见的难闻气味!