如何使用数据注释将int ID转换为字符串ID

时间:2015-07-05 16:41:56

标签: c# asp.net sql-server asp.net-mvc entity-framework

我正在使用实体框架代码第一种方法,并希望有一个字符串,其增量为我的Id。我在我的sql server中有以下代码可以为我执行此操作但是我无法在Package Manager中执行update-database,如果我这样做将删除递增字符串的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

1 个答案:

答案 0 :(得分:1)

首先,如果你发布你的代码第一堂课,我会给出更好的答案。但是我的假设是你已经将它创建为真实的方式,但我认为你错过了DatabaseGenerated属性,该属性指定了数据库如何为属性生成值。

它需要DatabaseGeneratedOption来设置用于为数据库中的属性生成值的模式,它具有for a in string: print a 选项,用于将相关属性标记为数据库中的自动增量列。

所以在您的代码中首先Identity类,添加:

School

属性位于[DatabaseGenerated(DatabaseGeneratedOption.Identity)] 属性之上,如下所示:

SchoolID
祝你好运! :)