如何使用数据注释将int ID转换为字符串ID
本文关键字:ID 转换 字符串 int 何使用 数据 注释 | 更新日期: 2023-09-27 18:01:03
我使用的是实体框架代码优先的方法,希望有一个具有随Id递增的字符串的类。我的sql server中有以下代码可以帮我完成这项工作,但我无法在Package Manager中更新数据库,如果我这样做,将删除递增字符串的class属性。这是Sql代码:
CREATE TABLE [dbo].[School](
[SchoolID] [int] IDENTITY(1,1) NOT NULL,
Emp_ID as 'emp_' + cast(SchoolID as nvarchar(10))Persisted,
[DayEvent] [nvarchar](100) NULL,
[DayNote] [nvarchar](250) NULL,
CONSTRAINT [PK_dbo.School] PRIMARY KEY CLUSTERED
(
[SchoolID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
首先,如果您先在类中发布代码,我会给出更好的答案。然而,我的假设是,您已经按照真实的方式创建了它,但我认为您错过了DatabaseGenerated属性,该属性指定了数据库如何为属性生成值。
它采用DatabaseGeneratedOption来设置用于为数据库中的属性生成值的模式,并具有Identity
选项来将相关属性标记为数据库中自动递增列。
因此,在代码第一个School
类中,添加:
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
SchoolID
属性之上的属性,例如:
public class School
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int SchoolID { get; set; }
public string DayEvent { get; set; }
public string DayNote { get; set; }
// ...
}
祝你好运!:(