gpt4 book ai didi

c# - 自定义字符串作为 Entity Framework 的主键

转载 作者:行者123 更新时间:2023-11-30 14:25:05 27 4
gpt4 key购买 nike

我正在尝试使用 Code First Entity Framework 将个性化字符串设置为主键。

我有一个带有返回 n 字符随机字符串的函数的助手,我想用它来定义我的 Id,就像 YouTube 视频代码一样。

using System.Security.Cryptography;

namespace Networks.Helpers
{
public static string GenerateRandomString(int length = 12)
{
// return a random string
}
}

我不想使用自动递增的整数(我不想让使用机器人的用户太容易访问每个项目),也不想使用 Guid(太长而无法向用户显示)。

using Networks.Helpers;
using System;
using System.ComponentModel.DataAnnotations;

namespace Networks.Models
{
public class Student
{
[Key]
// key should look like 3asvYyRGp63F
public string Id { get; set; }
public string Name { get; set; }
}
}

是否可以定义必须如何在模型中直接分配 Id?我应该在模型中包含助手代码而不是使用外部类吗?

最佳答案

为了在您的内部应用程序中方便起见,我仍然会使用 int 作为主键,但也会为您的唯一字符串索引包含另一个属性:

[Index(IsUnique=true)]
[StringLegth(12)]
public string UniqueStringKey {get;set;}

字符串列必须是有限长度才能允许索引。

请记住,数据库将按主键对记录进行物理排序,因此拥有一个自动递增的 int 是理想的选择 - 随机生成的字符串并非如此。

关于c# - 自定义字符串作为 Entity Framework 的主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39663644/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com