entity-framework - EF 4.1 RTM-EntityTypeConfiguration

标签 entity-framework code-first

我一直在使用带有每个实体专用映射类的EF Code First CTP5,如下所示:

public class UserMapping : EntityTypeConfiguration<User>
{
    public UserMapping()
    {
        ToTable("Users");

        HasKey(t => t.ID);
        Property(t => t.ID).HasColumnName("user_id");

        Property(t => t.Name).HasColumnName("name");
    }
}

并按照Jonas Cannehag在此处描述的方式加载它们:
http://areaofinterest.wordpress.com/2010/12/08/dynamically-load-entity-configurations-in-ef-codefirst-ctp5/

但这在RTM中不起作用,我还无法弄清楚如何使用专用的映射类。你? :-)

最佳答案

public class DataContext : DbContext
{
  ...

  protected override void OnModelCreating(DbModelBuilder modelBuilder)
  {
            modelBuilder.Configurations.Add(new UserMapping());     
            base.OnModelCreating(modelBuilder);
  }
}

动态版本(可能应该在投入生产之前进行广泛的测试)
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
            var typesToRegister =
                Assembly.GetExecutingAssembly().GetTypes().Where(
                    type =>
                    type.BaseType.IsGenericType &&
                    type.BaseType.GetGenericTypeDefinition() == typeof (EntityTypeConfiguration<>));

            foreach (object configurationInstance in typesToRegister.Select(Activator.CreateInstance))
            {
                modelBuilder.Configurations.Add((dynamic) configurationInstance);
            }

            base.OnModelCreating(modelBuilder);
        }

关于entity-framework - EF 4.1 RTM-EntityTypeConfiguration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5718976/

相关文章:

c# - EF Core自定义扩展查询,无法翻译LINQ表达式

c# - Code First 问题,使用西里尔文播种数据

asp.net-mvc - ASP.NET MVC3 和 Entity Framework 代码优先架构

c# - 我是否需要将 AsQueryable() 用于在 .NET EF 中返回 IQueryable<Type> 的方法

c# - 如何使用 C# 对组合框进行 Linq 查询

c# - 如何为 Entity Framework 和 Windows 窗体加密 ConnectionString

c# - 有人可以向我解释一下这个 LINQ/Entity Framework 查询实际上是如何工作的吗?

C# - Entity Framework 代码优先 - 将对象映射到两个表中

c# - 如何在 MVC 4 的代码优先方法中将 Membership 的用户表中的外键创建到自定义表中?

linq - 最有效的 Entity Framework 代码优先方法,用于展平/投影具有特定子实体的父实体