seed در ستون Id مربوط به دیتا بیس در Codefirst

3/28/2017 MVC
3530

برای یک پروژه نیاز داشتم تا اولین رکوردی که وارد بانک اطلاعاتی میشود از Id  غیر از 1 مثلا 10 شروع شود، با توجه به اینکه ازCodefirst  استفاده میکردم به دنبال ایتمی میگشتم تا آن را در همان Model  اعمال کنم اما متاسفانه این امکان در Codefirst وجود ندارد.

برای اپدیت دیتابیس من عموما از true در AutomaticMigrationsEnabled ; استفاده میکردم اما یکی از راههای اعمال seed  برا ی ستون استفاده از کدهای  Migration است به این صورت که 

DBCC CHECKIDENT ('TableName', RESEED, NewSeedValue)

 

این کد را باید در قسمت up  کدهای migration اضافه کرد. البته لازم است تا در پایین قسمتی که جدول مورد نظر قرار است اعمال شود اضافه شود به طور مثلا برای جدول MainGroup من به این صورت خواهد بود

  CreateTable(
                "dbo.MainGroups",
                c => new
                    {
                        Id = c.Int(nullable: false, identity: true),
                        Code = c.Int(nullable: false),
                        Name = c.String(),
                        Description = c.String(),
                    })
                .PrimaryKey(t => t.Id);
            Sql("DBCC CHECKIDENT ('MainGroups', RESEED, 10)");