C#对象中[key]的目的是什么?

时间:2014-06-18 14:17:50

标签: c# wcf

我试图在C#中第一次编写WCF RIA类(也是我第一次使用该语言),只是为了连接LightSwitch数据源的一些表。在example code之后,我创建了以下类来返回我的数据行:

public class StudentTerm
{
    [Key]
    public string TermCode { get; set; }
    public string StudentID { get; set; }
    public decimal? TermGPA { get; set; }
    public decimal? CumulativeGPA { get; set; }
}

但我很好奇 - [Key] typedef的目的是什么?它仅适用于我的示例中的 TermCode ,还是适用于整个类?

3 个答案:

答案 0 :(得分:1)

Key之上的{p> TermCode称为property attribute. 属性提供了一种将声明性信息与C#代码(类型,方法,属性等)相关联的强大方法。一旦与程序实体关联,就可以在运行时查询该属性并以多种方式使用该属性 More on attributes you can find here.

在这个特殊情况下,我们讨论的是WCF RIA Services属性 在WCF RIA Services中,每个实体都必须定义主键,并使用[Key]属性将属性指定为主键。如果类具有复合主键,则可以修饰多个属性。

答案 1 :(得分:1)

如上所述@LIUFA,Key是属性。它的全名是System.ComponentModel.DataAnnotations.KeyAttribute这是为了表示Id字段是底层数据存储的主键。

从更一般的意义上讲,Attribute可以修饰类,方法,属性或程序集。他们不会自己做任何事情,但是被其他代码用来"标记"的东西。

答案 2 :(得分:0)

您应该检查msdn库以获得答案: http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.keyattribute(v=vs.110).aspx

是的,它只适用于 TermCode 。类属性放在类定义的正上方。 此外是字段属性的属性,因此无法应用于类