Entity Framework中的实体类添加复合主键

使用Code First模式实现给实体类添加复合主键,代码如下:

复制代码
复制代码
 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel.DataAnnotations;
 4 using System.ComponentModel.DataAnnotations.Schema;
 5 using System.Linq;
 6 using System.Web;
 7 
 8 namespace MyFirstMvcApp.Models
 9 {
10     /// <summary>
11     /// 登录记录
12     /// </summary>
13     public class LoginRecordInfo
14     {
15         /// <summary>
16         /// 登录的邮件地址(主键)
17         /// </summary>
18         [Key,Column(Order=1)]
19         public string Email { get; set; }
20 
21         /// <summary>
22         /// 登录的客户端IP
23         /// </summary>
24         public string LoginHostIP { get; set; }
25 
26         /// <summary>
27         /// 登录的客户端主机名
28         /// </summary>
29         public string LoginHostName { get; set; }
30 
31         /// <summary>
32         /// 登录时间(主键)
33         /// </summary>
34         [Key,Column(Order=2)]
35         public DateTime LoginTime { get; set; }
36     }
37 }
复制代码
复制代码

使用特性Key和Column设置复合主键,Key表示字段是主键,Order用来设置主键的顺序。使用Key和Column需要添加命名空间:
Key的命名空间:System.ComponentModel.DataAnnotations;
Column的命名空间:System.ComponentModel.DataAnnotations.Schema;

posted @   大锅锅  阅读(2011)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示