Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在WPF中是否可以重新创建DatabaseIfModelChanges?_Wpf_Entity Framework_Ef Code First_Entity Framework 4.1 - Fatal编程技术网

在WPF中是否可以重新创建DatabaseIfModelChanges?

在WPF中是否可以重新创建DatabaseIfModelChanges?,wpf,entity-framework,ef-code-first,entity-framework-4.1,Wpf,Entity Framework,Ef Code First,Entity Framework 4.1,我先试用实体框架代码。在WPF 4.0中,我似乎找不到用于重新创建DatabaseIfModelChanges的程序集/命名空间。这是仅ASP.NET的功能吗?如果不是,我应该引用什么程序集 这是我的代码: using System; using System.Data.Entity; using System.Windows; using CodeFirstTester.Models; namespace CodeFirstTester { public partial class

我先试用实体框架代码。在WPF 4.0中,我似乎找不到用于
重新创建DatabaseIfModelChanges
的程序集/命名空间。这是仅ASP.NET的功能吗?如果不是,我应该引用什么程序集

这是我的代码:

using System;
using System.Data.Entity;
using System.Windows;
using CodeFirstTester.Models;

namespace CodeFirstTester
{
    public partial class App : Application
    {
        static App()
        {
            // this fails:
            Database.SetInitializer(new RecreateDatabaseIfModelChanges<NerdDinners>());

            // The type or namespace name 'RecreateDatabaseIfModelChanges'
            // could not be found (are you missing a using directive or
            // an assembly reference?)                

            using (var nerdDinners = new NerdDinners())
            {
                var dinner = new Dinner()
                {
                    Title = "Party at Scott's House",
                    EventDate = DateTime.Parse("12/31/2010"),
                    Address = "Building 40",
                    HostedBy = "scottgu@microsoft.com"
                };
                nerdDinners.Dinners.Add(dinner);
                nerdDinners.SaveChanges();
            }
        }
    }
}
使用系统;
使用System.Data.Entity;
使用System.Windows;
使用CodeFirstTester.Models;
命名空间CodeFirstTester
{
公共部分类应用程序:应用程序
{
静态应用程序()
{
//这失败了:
SetInitializer(新的重新创建DatabaseIfModelChanges());
//类型或命名空间名称“RecreateDatabaseIfModelChanges”
//找不到(您是否缺少using指令或
//组件参考?)
使用(var nerdDinners=new nerdDinners())
{
var晚餐=新晚餐()
{
Title=“斯科特家的派对”,
EventDate=DateTime.Parse(“2010年12月31日”),
地址=“40号楼”,
HostedBy=”scottgu@microsoft.com"
};
书呆子。晚餐。添加(晚餐);
nerdDinners.SaveChanges();
}
}
}
}

初始值设定项称为
DropCreateDatabaseIfModelChanges
。它可以在
System.Data.Entity
命名空间的EntityFramework.dll(EF 4.1)中找到。

我找不到任何关于该类的MSDN文档。你确定吗,它进入了RTM?我发现了这个:。它说,这个策略现在被称为
DropCreateDatabaseIfModelChanges
,但我在MSDN上也没有找到任何关于它的信息。。。strange@DanielHilgarth:这里有文档:还列出了
IDatabaseInitializer
的三种可用实现,包括
DropCreateDatabaseIfModelChanges
。谢谢Ladislav!我猜当他们从CTP改为RC时,他们重新命名了策略。