1

我使用代码优先的方法来创建一个数据库(创建了包含一个名为“users”的表的“User.mdf”文件)。

我添加了一个新模型:

public class Picture
{
    public int pictureId { get; set; }
    public int userId { get; set; }
    public string pictureUrl { get; set; }
}

public class PictureDBContext : DbContext
{
    public DbSet<Picture> Pictures { get; set; }
}

并尝试将数据保存在这样的新表中:

Picture curentImage = new Picture();
        curentImage.userId = int.Parse(Session["userId"].ToString());
        curentImage.pictureUrl = "/MyImages" + filename;

        if (ModelState.IsValid)
        {
            db.Pictures.Add(curentImage);
            db.SaveChanges();   
        }

我希望它会为图片创建一个新表(因为它在用户模型中工作)......

要让“EF 魔法”也了解这个模型并在现有数据库中创建和添加图片表,需要什么?如果可能的话,将很高兴以正确的方式将该数据保存到新表中并且很少解释。

4

1 回答 1

0

可能会收到错误,因为迁移已关闭。

您可以编写自己的迁移来添加新表,也可以先使用 EF 代码的自动迁移功能。

如果您想编写自己的迁移代码,您可以在此博客上自行阅读: Code First Migrations

如果要启用自动迁移。您可以添加此配置类,它应该可以解决问题。

internal sealed class PictureDBContextConfiguration : DbMigrationsConfiguration<PictureDBContext>
{
    public PictureDBContextConfiguration()
    {
        AutomaticMigrationsEnabled = true; // This will allow CodeFirst to create the missing tables/columns
        AutomaticMigrationDataLossAllowed = true;  //This will allow CodeFirst to Drop column or even drop tables
    }
}
于 2013-10-11T12:43:05.867 回答