首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >种子设定不适用于EF 4.1

种子设定不适用于EF 4.1
EN

Stack Overflow用户
提问于 2011-10-17 17:30:15
回答 2查看 955关注 0票数 1

我在asp.net mvc教程的帮助下创建了以下代码。它们在一个不同的类库中,我称之为Model。我使用名为HRContext的连接字符串在类库中创建了一个app.config。同样,在the项目中,我创建了相同的连接字符串。

当我运行项目时,我放置了断点,种子方法永远不会执行,但是会执行OnModelCreating。

我得到了一个异常,说视图中不存在表dbo.Position。

代码语言:javascript
复制
Exception Details: System.Data.SqlClient.SqlException: Invalid object name 'dbo.Position'.



Line 21:             var positions = unitOfWork.PositionRepository.Find(p => p.PositionID != null);
Line 22: 
Line 23:             return View(positions.ToList());
Line 24:         }








 public class HRContextInitializer : DropCreateDatabaseAlways<HRContext>
    {
        protected override void Seed(HRContext context)
        {
            Position netdeveloper = new Position() { name = ".net developer", yearsExperienceRequired = 5 };
            Position javadeveloper = new Position() { name = "java developer", yearsExperienceRequired = 5 };

            byte[] johnImage = File.ReadAllBytes(@"\Content\Photos\1.jpg");
            byte[] luisImage = File.ReadAllBytes(@"\Content\Photos\2.jpg");

            Applicant luis = new Applicant()
            {
                name = "Luis",
                skypeuser = "le.valencia",
                telephone = "0491732825",
                photo = luisImage
            };

            Applicant john = new Applicant()
            {
                name = "John",
                skypeuser = "jo.valencia",
                telephone = "3435343543",
                photo = johnImage
            };


            ApplicantPosition appicantposition = new ApplicantPosition()
            {
                Applicant = luis,
                Position = netdeveloper,
                appliedDate = DateTime.Today,
                Status = Status.Applied
            };

            ApplicantPosition appicantposition2 = new ApplicantPosition()
            {
                Applicant = john,
                Position = javadeveloper,
                appliedDate = DateTime.Today,
                Status = Status.Applied
            };

            context.Positions.Add(netdeveloper);
            context.Positions.Add(javadeveloper);
            context.Applicants.Add(luis);
            context.Applicants.Add(john);
            context.ApplicantsPositions.Add(appicantposition);

            context.SaveChanges();
        }
    }




public class HRContext : DbContext
    {
        public DbSet<Position> Positions { get; set; }
        public DbSet<Applicant> Applicants { get; set; }
        public DbSet<ApplicantPosition> ApplicantsPositions { get; set; }
        public DbSet<ApplicationPositionHistory> ApplicationsPositionHistory { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Position>().ToTable("Position");
            modelBuilder.Entity<Applicant>().ToTable("Applicant");
            modelBuilder.Entity<ApplicantPosition>().ToTable("ApplicantPosition");
            modelBuilder.Entity<ApplicationPositionHistory>().ToTable("ApplicationsPositionHistory");

            modelBuilder.Entity<Position>().Property(c => c.name).IsRequired();
            modelBuilder.Entity<Applicant>().Property(c => c.name).IsRequired();
            modelBuilder.Entity<ApplicantPosition>().Property(c => c.appliedDate).IsRequired();

            base.OnModelCreating(modelBuilder);
        }
    }
EN

Stack Overflow用户

发布于 2011-10-17 17:51:56

在HRContext类中,您需要设置数据库初始值设定项:

代码语言:javascript
复制
protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    Database.SetInitializer(new HTContextInitializer());
} 
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7791814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档