自动创建属性 - 在数据库表之外

时间:2010-03-09 09:34:53

标签: c# .net

我已经开始搜索我的需求,但没有成功。

假设我有一张看起来像这样的表:

ID | KeyId |名称|描述
1 | 153 |货币| XXXXXXXX
2 | 68 |签名| YYYYYYYY
3 | 983 |联系| ZZZZZZZZ

现在我想要不是通过集合访问这些值,因为我不记得所有的值,让我们说出名字。

所以这是我想要的: Values.Where(v => v.Name ==“Currency”)。选择(v => v.KeyId);

表格内容很少变化,但仍然不是一个很好的解决方案,它有一个包含所有“名称”的结构并且像这样得到KeyId。

struct Values
{
    public static int Currency
    {
        get { return GetKeyId("Currency"); }
    }
}

我正在寻找一种解决方案,可以在此表中创建自动属性。这样我就可以使用intellisense访问KeyId。正如您在ASP.NET中的资源一样。只要在RESX文件中添加新条目,类就会自动更新。

例如: Values.Currency ,这会让我回到相应的KeyId。

感谢您的回复

2 个答案:

答案 0 :(得分:0)

我相信这个功能已在C#4.0中添加(尚未发布),在Microsoft PDC上宣布。但是,即使该解决方案也可能无法为您尚未明确键入的任何内容提供Intellisense(因为如果您考虑它,Intellisense将无法帮助您键入将来可能添加的值)。

在此之前,标准做法是使用字典和/或枚举(但字典将要求您键入字符串,并且Enum不会自动更新,或者两者都使用Enum作为字典的键获得intellisence帮助)。

答案 1 :(得分:0)

我为我找到了完美的解决方案=> T4模板

通过这个功能,我可以遍历我的表并为每一行创建属性,非常好。

你去了:
Example how to work with T4
T4 Editor - Free
Infos to T4 Editor