Tag: ef code first

entity framework4.1 – EFTracingProvider

有没有办法让EFTracing提供程序与EF 4.1一起使用? EFTracing似乎需要一个objectcontext,我使用dbcontext。 提前致谢!

entity framework代码优先 – 为什么我不能以这种方式更新复杂属性?

我正在使用Entity Framework 4.1(代码优先)开展一个小型示例项目。 我的课程看起来像这样: public class Context : DbContext { public IDbSet People { get; set; } public IDbSet EmployeeTypes { get; set; } } public class Person { [Key] public int Key { get; set; } public string FirstName { get; set; } public string LastName { get; set; } virtual public EmployeeType EmployeeType […]

“System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy”类型中的方法“ExecuteAsync”没有实现

我是在c#中使用Code First的新手。 在我的项目中启用迁移并启动我的网站后,出现错误: Method ‘ExecuteAsync’ in type ‘System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy’ from assembly ‘EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089’ does not have an implementation. 我已经定义了上下文类,如下所示。 namespace MyOA.Migration.Contexts { public class OADBContext : DbContext { public OADBContext() { } } } 我尝试在Global.asax中创建数据库,如下所示。 protected void Application_Start() { // Forces initialization of database on model changes. using (var context = new Migration.Contexts.OADBContext()) { […]

升级到Entity Framework 4.3.1后出现未处理的exception

错误: 未处理的exception:System.Data.SqlClient.SqlException:操作失败,因为表’PrivateMakeUpLessons’上已存在名称为“IX_ID”的索引或统计信息。 模型(简化,在单独的测试项目中构建以进行调试): public abstract class Lesson { public Guid ID { get; set; } public string Room { get; set; } public TimeSpan Time { get; set; } public int Duration { get; set; } } public abstract class RecurringLesson : Lesson { public int DayOfWeek { get; set; } public DateTime StartDate { […]

使用DbContext设置()而不是在上下文中公开

执行以下操作时是否存在任何差异: public class UsersContext : DbContext { public DbSet Users { get; set; } } 与使用上下文的Set方法: public class UsersContext : DbContext { } var db = new UsersContext(); var users = db.Set(); 这些有效地做了同样的事情,给了我一组用户,但是除了你没有通过属性暴露集合之外还有什么大的差别吗?

entity framework – 如何检查表是否存在?

我正在使用entity framework和Code First方法。 基类DbContext具有创建和删除数据库以及检查其存在的function。 我想检查是否存在特殊表(实体)。 是否可以使用框架实现或者我是否需要编写自定义方法? 如果我需要编写自己的实现,那么最通用的方法是什么? 谢谢你的帮助。

entity framework4.1自创建数据库以来,创建数据库后立即更改了支持上下文的模型

我正在开发一个项目,它使用Entity Framework 4.1将我们的各种对象持久化到数据库(代码优先)。 我在Visual Studio中使用本地SQL Express DB进行测试,我们的Jenkins服务器将已提交的代码部署到测试服务器。 发生这种情况时,我暂时将本地连接字符串更改为指向测试数据库服务器并运行unit testing以重新创建测试数据库,以使其与我们的最新实体等相匹配。 我最近注意到我们的测试服务器发出了这个错误: 自创建数据库以来,支持’EntityFrameworkUnitOfWork’上下文的模型已更改。 手动删除/更新数据库,或使用IDatabaseInitializer实例调用Database.SetInitializer。 例如,DropCreateDatabaseIfModelChanges策略将自动删除并重新创建数据库,并可选择使用新数据对其进行种子设定。 这通常表明我们的代码已经更改,我需要运行unit testing来重新创建数据库。 除了我刚刚那样做! 我不相信我们的部署过程有任何问题 – 测试服务器上的DLL似乎与我的本地环境中的版本相同。 是否有任何其他设置或环境因素可能导致自创建数据库以来模型发生更改的错误? 我是新来的 – 谢谢你的帮助!

如何在EF-Code-First中指定主键名称

我正在使用Entity Framework Codefirst来创建我的数据库。 当我通过ODBC连接到它时,具有模式名称dbo.pk_Jobs的默认主键似乎扰乱了访问2007。 如果我手动编辑名称并删除模式名称并将此主键重命名为pk_jobs,则Access现在可以读取该表。 是否可以使用Fluent Api,数据属性或任何其他方法指定主键名称不包括架构的名称。 public class ReportsContext : DbContext { public DbSet Jobs { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity().ToTable(“Jobs”); modelBuilder.Entity().HasKey(j => j.uuid); base.OnModelCreating(modelBuilder); } } public class Job { public Guid uuid{ get; set; } public int active{ get; set; } }

entity framework – 从实体获取表名

我正在使用Entity Framework 4.1和Code First方法。 我能够获取我的实体的存储模型类型和列名称: var items = context.ObjectContext.MetadataWorkspace.GetItems(DataSpace.SSpace); foreach (var i in items) { Console.WriteLine(“Table Name: {0}”, i.Name); Console.WriteLine(“Keys:”); foreach (var key in i.KeyMembers) Console.WriteLine(“\t{0} ({1})”, key.Name, key.TypeUsage.EdmType.FullName); Console.WriteLine(“Members:”); foreach (var member in i.Members) Console.WriteLine(“\t{0} ({1})”, member.Name, member.TypeUsage.EdmType.FullName); } 我需要的是获取实体映射到的真实表名。 有不同的方法来指定(通过使用Fluent-API .ToTable(),DataAnnotation [TableAttribute])。 有没有通用的方法来获得这些信息?

如何使用Entity Framework 6 Code First设置默认值约束?

在旧版应用程序中,大多数字符串属性不能为null,并且需要具有默认值string.empty。 我知道可以通过迁移执行此操作,但我正在寻找使用流畅配置界面执行此操作的方法: protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Properties().Configure(c => { c.HasMaxLength(255); if (!c.ClrPropertyInfo.IsDefined(typeof (NullableAttribute), false)) { c.IsRequired(); // I want to set a default value (string.empty) here. } } 有没有办法做到这一点,或者我注定要初始化实体构造函数中的所有字符串?