创建的第二个数据库?我是MVC3的新手,我对CodeFirst方法有疑问。我创建了2个模型、上下文、视图等,一切都很完美(能够添加、删除等),但是当我签入MicrosoftSQLManagementStudio时,我看到了2个数据库。其中之一是我在web.config中需要的那个。这个只包含成员表,第二个有一个奇怪的名字:“RecettesMaison.DB.RecettesMaisonContext”。它是包含生成表的那个...我想知道这个名称从何而来,我怎样才能做到这一点,以便所有生成的表都只使用我指定的名称进入我的连接字符串。我只想要一个数据库。我确定这只是上下文中的标签,但我无法在谷歌上找到该信息。编辑:简而言之,我希望我的数据库继续使用DropCreateDatabaseIfModelChanges但我希望它使用连接字符串中指定的名称创建数据库,但事实并非如此(它使用命名空间和数据库名称创建名称上下文)谢谢!这是因为您没有找到数据库的连接字符串,因此CodeFirst使用DbContext用于文件名的完整命名空间自动创建一个连接字符串。通过将filename.mdf更改为所需的文件名,将此文本插入到connectionString中:AttachDBFilename=|DataDirectory|filename.mdf。数据库文件将位于项目App_Data文件夹中。你会得到这样的东西:通过在DbContext构造函数中传递connectionStringName来确保你的DbContext使用正确的connectionString,如下所示:publicclassRecettesMaisonContext:DbContext{publicRecettesMaisonContext():base("RecettesMaison"){}(DbModelBuildermodelBuilder){vartypesToRegister=Assembly.GetExecutingAssembly().GetTypes().Where(type=>type.BaseType.IsGenericType&&type.BaseType.GetGenericTypeDefinition()==typeof(EntityTypeConfiguration));foreach(typesToRegister.Select(Activator.CreateInstance)中的对象配置实例){modelBuilder.Configurations.Add((动态)configurationInstance);}}...}默认情况下,代码首先为您创建一个数据库。如果要覆盖此行为,请使用Database.SetInitializer(null);MSDN:msdn.microsoft.com/en-us/library/gg679461(v=vs.103).aspx以上是C#学习教程:CreatewithMVC3如何防范第二个数据库?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
