我刚刚在我的项目中启用了迁移,并在UserProfile
中添加了几个字段:
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
public string Description { get; set;}
public DateTime? CreatedOn { get; set; }
public DateTime? LastAccess { get; set; }
}
Iaddmigration addfields ForUserProfile
并创建:
...
public override void Up()
{
AddColumn("dbo.UserProfile", "Email", c => c.String());
AddColumn("dbo.UserProfile", "Description", c => c.String());
AddColumn("dbo.UserProfile", "CreatedOn", c => c.DateTime());
AddColumn("dbo.UserProfile", "LastAccess", c => c.DateTime());
}
...
Update-数据库-详细
产生了以下输出:
Target database is: 'Hifi.Models.HifiContext' (DataSource: (localdb)\v11.0, Provider: System.Data.SqlClient, Origin: Convention).
Applying code-based migrations: [201303311011083_AddFieldsForUserProfile].
Applying code-based migration: 201303311011083_AddFieldsForUserProfile.
ALTER TABLE [dbo].[UserProfile] ADD [Email] [nvarchar](max)
ALTER TABLE [dbo].[UserProfile] ADD [Description] [nvarchar](max)
ALTER TABLE [dbo].[UserProfile] ADD [CreatedOn] [datetime]
ALTER TABLE [dbo].[UserProfile] ADD [LastAccess] [datetime]
[Inserting migration history record]
Running Seed method.
显然一切都进行得很顺利,但在收到一个错误,即column CreatedOn不存在之后,我用服务器资源管理器查看了数据库,事实上,我的UserProfile
表中缺少了所有4个column。我做错了什么?
我发现了我的错误。不知何故,我有两个不同的mdf
文件aspnet-Hifi-20130330054424.mdf
和Hifi。模型。HifiContext.mdf
具有相同的文件大小,我认为两者都是必要的。我的服务器资源管理器正在使用aspnetxx.mdf
,数据库更改为HifiContext.mdf
。我真可耻。
在相关说明中,我无法正确显示所有注册用户的列表。它总是空的,尽管我可以完美地登录。以某种方式登录aspnetxx。mdf
已被查询,但myMemberListController
已被查询HifiContext。mdf
。更改连接字符串后,我最初没有注册用户,新用户被添加到HifiContext。mdf
和列表工作正常。这是怎么发生的?
在启动代码中调用此方法,使用新字段重新创建数据库:
public void CheckForDBChanes()
{
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<Context>());
}
你确定你找的是正确的数据库吗?
不过似乎是这样。你得到任何错误吗?任何特殊权限等。
我的建议是创建一个新连接,例如配置和
<connectionStrings>
<add name="HifiContext" connectionString="Data Source=MACHINE\INSTANCE;Initial Catalog=HiFi;Integrated Security=True; MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
</connectionStrings>`
...备份你的旧电脑以防万一。i、 e.从头开始重新创建数据库
如果什么都不起作用——如果你只是打开迁移,试着重新创建——没有其他想法。
至于为什么会发生不同步——很难说清楚——但我猜你也有“两个连接字符串”(或者在某种程度上)。
确保您的连接字符串“命名”与您的dbcontext
相同,或者直接将连接放在您的at dbcontext上
。这有时是个问题,因为EF/CF的默认值并不明显。
SQLAlchemy变更日志和迁移指南现在集成在主文档中。 当前迁移指南 SQLAlchemy 1.4有什么新功能? SQLAlchemy 2.0概述和状态 迁移到Alchemy 更改日志 1.4变更日志 1.3换热器 1.2换热器 1.1换热器 1换热器 0.9换热器 0.8换热器 0.7换热器 0.6换热器 0.5换热器 0.4换热器 0.3换热器 0.2换热器 0.1换热器 旧的迁移指南 S
我正在为我的java程序使用一个JComboBox,该框的编码如下 其中猫是一个字符串数组。但是,即使我更改了所选索引,getSseltedIndex()方法仍然返回0。请帮忙。
在MainActivity中,我有一个TextView。在这个textView中,有一个数字我保留在SharedPreferences中。并且每隔几分钟SharedPreferences就会用一个报警管理器更改一次,但是我的MainActivity中的SharedPreferences不会更改,任何人都知道为什么吗? 这是MainActivity中代码的一部分 这是警报接收器中的代码
问题内容: 我在MySQL 5.6中更改lower_case_table_names变量值时遇到问题…我做了所有在Windows xampp上更改lower_case_table_names = 2值的说明 。 Windows 7的默认值为“ 1”。我想将其切换为“ 2”。 尝试了几种方法,我所做的是: 编辑C:\ Program Files \ MySQL \ MySQL Server 5.6
我在文件中的迁移中添加了一个新表。。 这是代码: 当我运行时,我的数据库中只有默认的laravel用户(和迁移)表。没有货币。 原因可能是什么? 编辑 迁移一切都很顺利。问题是: SQLSTATE[42000]:语法错误或访问冲突:1071指定的密钥太长;最大密钥长度为767字节(SQL:更改表用户添加唯一users_email_unique(电子邮件)) SQLSTATE[42000]:语法错误
我从git克隆了一个项目。 在我运行命令后: -作曲家转储-自动加载 -作曲家更新 文件composer.json: 文件evn APP\u ENV=local APP\u DEBUG=true APP\u KEY=SomeRandomString APP\u URL=http://localhost DB_CONNECTION=mysql DB_HOST=127.0.0.1DB_PORT=330