簡體   English   中英

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

[英]What is the purpose of [key] in a C# object?

我正在嘗試使用C#首次編寫WCF RIA類(這也是我第一次使用該語言),只是為了為LightSwitch數據源加入一些表。 按照示例代碼 ,我創建了以下類以返回數據行:

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還是整個類?

Key之上TermCode被稱為property屬性。
屬性提供了一種將聲明性信息與C#代碼(類型,方法,屬性等)相關聯的強大方法。 一旦與程序實體相關聯,就可以在運行時查詢該屬性,並以多種方式使用它。
有關屬性的更多信息,請參見此處。

在這種特殊情況下,我們談論的是WCF RIA服務屬性。
在WCF RIA Services中,每個實體都必須定義一個主鍵,並且您可以使用[Key]屬性指定一個屬性作為主鍵。 如果類具有復合主鍵,則可以修飾多個屬性。

就像@LIUFA所說的那樣, Key是一個屬性。 它的全名是System.ComponentModel.DataAnnotations.KeyAttribute這表示Id字段是基礎數據存儲區的主鍵。

在更一般的意義上, Attribute可以修飾類,方法,屬性或程序集。 它們自己不會做任何事情,但是被其他代碼用來“標記”事物。

您可能應該檢查msdn庫以獲得答案: http : //msdn.microsoft.com/zh-cn/library/system.componentmodel.dataannotations.keyattribute( v=vs.110) .aspx

是的,它僅適用於TermCode 類屬性位於類定義上方。 另外Key是field屬性的屬性,因此無法應用於類

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM