Tag: entity framework 5

ASP.NET SimpleMembershipProvider自动迁移

所以我试图使用自动迁移与我的新MVC 4项目,但不知何故,它不工作。 我跟着这个博客文章一步一步。 我已将更改添加到UserProfile帐户模型( NotaryCode字段)中: [Table("UserProfile")] public class UserProfile { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int UserId { get; set; } public string UserName { get; set; } public int NotaryCode { get; set; } } 然后,我在包pipe理器控制台enable-migrations上写了一个Configuration类出现(从DbMigrationsConfiguration<Web.Models.UsersContext>inheritance),然后填充类: public Configuration() { AutomaticMigrationsEnabled = true; } protected override void Seed(Atomic.Vesper.Cloud.Web.Models.UsersContext context) { WebSecurity.InitializeDatabaseConnection( "DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true); […]

非静态方法需要一个目标。 entity framework5 Code First

我收到错误“非静态方法需要目标”。 当我运行以下查询: var allPartners = DbContext.User .Include(u => u.Businesses) .Where(u => u.Businesses.Any(x => x.Id == currentBusinessId)) .ToList(); 我的实体是这样定义的: public class User : Entity { public virtual List<Business> Businesses { get; set; } } public class Business : Entity { public virtual List<User> Users { get; set; } } public class Entity { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public […]

EF迁移以更改列的数据types

我在我的项目中有一个模型如下: public class Model { public int Id { get; set; } public long FromNo { get; set; } public long ToNo { get; set; } public string Content { get; set; } public long TicketNo { get; set; } } 迁移如下 public override void Down() { AlterColumn("dbo.Received", "FromNo", c => c.Long(nullable: false)); AlterColumn("dbo.Received", "ToNo", […]

在逆向工程数据库时改进导航属性名称

我使用entity framework5与Visual Studio与entity framework电动工具testing版2来逆向工程中等大小的数据库(~100表)。 不幸的是, 导航属性没有有意义的名字 。 例如,如果有两个表: CREATE TABLE Contacts ( ContactID INT IDENTITY (1, 1) NOT NULL, … CONSTRAINT PK_Contacts PRIMARY KEY CLUSTERED (ContactID ASC) } CREATE TABLE Projects ( ProjectID INT IDENTITY (1, 1) NOT NULL, TechnicalContactID INT NOT NULL, SalesContactID INT NOT NULL, … CONSTRAINT PK_Projects PRIMARY KEY CLUSTERED (ProjectID ASC), […]

如何重命名entity framework5代码首先迁移数据库列而不丢失数据?

我得到了默认的ASP.NET MVC 4模板,并成功运行EF 5.0 Code First Migrations。 但是,当我更新模型属性名称时,相应的表列数据由EF 5.0删除。 是否有可能以自动的方式重命名表列而不丢弃数据?

entity framework迁移重命名表和列

我重命名了一对夫妇实体及其导航属性,并在EF 5中生成了新的迁移。与EF迁移中的重命名一样,默认情况下,它将删除对象并重新创build它们。 这不是我想要的,所以我几乎不得不从头构build迁移文件。 public override void Up() { DropForeignKey("dbo.ReportSectionGroups", "Report_Id", "dbo.Reports"); DropForeignKey("dbo.ReportSections", "Group_Id", "dbo.ReportSectionGroups"); DropForeignKey("dbo.Editables", "Section_Id", "dbo.ReportSections"); DropIndex("dbo.ReportSectionGroups", new[] { "Report_Id" }); DropIndex("dbo.ReportSections", new[] { "Group_Id" }); DropIndex("dbo.Editables", new[] { "Section_Id" }); RenameTable("dbo.ReportSections", "dbo.ReportPages"); RenameTable("dbo.ReportSectionGroups", "dbo.ReportSections"); RenameColumn("dbo.ReportPages", "Group_Id", "Section_Id"); AddForeignKey("dbo.ReportSections", "Report_Id", "dbo.Reports", "Id"); AddForeignKey("dbo.ReportPages", "Section_Id", "dbo.ReportSections", "Id"); AddForeignKey("dbo.Editables", "Page_Id", "dbo.ReportPages", "Id"); CreateIndex("dbo.ReportSections", "Report_Id"); CreateIndex("dbo.ReportPages", "Section_Id"); […]

如何在Visual Studio 2012和Entity Framework 5中为LocalDb设置unit testing

我们有一个使用entity framework5的Visual Studio 2012 ASP.NET MVC项目。 有一些unit testing依赖于数据库。 在testing项目中设置app.config文件以使用中央SQL Server数据库可以正常工作。 但是,使用LocalDb会更好,因此每个开发人员在运行testing时都有自己的数据库。 尤其是因为我们希望在运行时将testing设置为DropCreateDatabaseAlways 。 但是,我无法使设置工作。 如果我在app.config中试试这个: <add name="TestDb" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=unittestdb; Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\unittestdb.mdf" providerName="System.Data.SqlClient" /> 我得到: System.Data.SqlClient.SqlException:发生文件激活错误。 物理文件名'\ unittestdb.mdf'可能不正确。 诊断并更正其他错误,然后重试该操作。 CREATE DATABASE失败。 列出的某些文件名不能被创build。 检查相关的错误。 这听起来像是想要mdf文件已经存在,这似乎很奇怪,因为它正在尝试创build数据库。 手动创build一个mdf文件不会改变错误信息。

我如何撤消最后的添加迁移命令?

我已经使用“ Add-Migration命令创build了一个迁移,但是我想更改迁移的名称。 如何撤消迁移命令,以便使用新的所需名称重新生成它? 这只是删除生成的文件的问题,或者这可能是一个坏主意?

术语“更新数据库”不被识别为cmdlet的名称

我正在使用EF5 beta1,而我之前可以运行“更新数据库”。 现在我closures了Visual Studio,我无法运行它。 我得到以下错误: 术语“更新数据库”不被识别为cmdlet,函数,脚本文件或可操作程序的名称。 检查名称的拼写,或者如果包含path,请validationpath是否正确,然后重试。 在行:1 char:16 +更新数据库<<<< -verbose + CategoryInfo:ObjectNotFound:(更新数据库:string)[],CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException 我试图重新安装EF5b1,虽然成功(已安装),“更新数据库”仍然无法正常工作。 谁能帮助吗?

debugging程序包pipe理器控制台更新数据库种子方法

我想在我的entity framework数据库configuration类中debuggingSeed()方法时,我从包pipe理器控制台运行update-database,但不知道如何去做。 我想与其他人分享解决scheme,以防他们遇到同样的问题。