C# 从数据库表中自动创建属性

C# 从数据库表中自动创建属性,c#,.net,C#,.net,我已经在谷歌上搜索了一下,想找到一个满足我需要的解决方案,但没有成功 假设我有一张这样的桌子: ID | KeyId | Name | Description 1 | 153 |货币| XXXXXXXX 2 | 68 |签名| YYYYYYYY 3 | 983 |联系人| zzzzzz 现在我想访问这些值,而不是通过集合,因为我无法记住所有的值,比如名称 所以这不是我想要的: 其中(v=>v.Name==“Currency”)。选择(v=>v.KeyId) 表内容很少改变,但它仍然不是一个好的

我已经在谷歌上搜索了一下,想找到一个满足我需要的解决方案,但没有成功

假设我有一张这样的桌子:

ID | KeyId | Name | Description
1 | 153 |货币| XXXXXXXX
2 | 68 |签名| YYYYYYYY
3 | 983 |联系人| zzzzzz

现在我想访问这些值,而不是通过集合,因为我无法记住所有的值,比如名称

所以这不是我想要的: 其中(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


感谢您的回复

我相信在微软PDC上宣布的C#4.0(尚未发布)中已经添加了此功能。但是,即使是该解决方案也可能无法为尚未显式键入的内容提供Intellisense(因为如果仔细考虑,Intellisense将无法帮助您键入将来可能添加的值)


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

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

有了这个特性,我可以遍历我的表并为每一行创建属性,pritty nice

好了:



听起来不错,让我们看看4.0是否会有这个功能。当然,在intellisense中不能添加未键入的内容。但是,如果您具有与ressource文件(RESX)相同的行为,那就太好了。我不知道这是不是一个容易的部分。我会尽力找出答案并在这里更新。谢谢你的回复