其中命名空间是扩展方法EntityTypeConfiguration.MapSingleType

时间:2012-09-21 16:00:46

标签: asp.net-mvc-3 entity-framework entity-framework-4 asp.net-mvc-4

我正在尝试实现以下代码,将数据库映射到POCO,该POCO的属性名称与对应的列略有不同,并且类名与表名略有不同。

map to single type

Here's the article

问题是没有名为MapSingleType的方法。我有以下两种方法可供选择:

public EntityTypeConfiguration<TEntityType> Map<TDerived>(Action<EntityMappingConfiguration<TDerived>> derivedTypeMapConfigurationAction) where TDerived : class, TEntityType;

public EntityTypeConfiguration<TEntityType> Map(Action<EntityMappingConfiguration<TEntityType>> entityMappingConfigurationAction);

但是,我找不到任何如何使用它们的例子,我希望找到MapSingleType方法,因为它适用于我必须映射的大量列。

我已下载CTP4 from here

我正在使用EF 4.0.3

这是我到目前为止的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations;
using PlayingWithEF.DAL.CLS.Classes;
using System.Data.Entity.ModelConfiguration;

namespace PlayingWithEF.DAL.CLS.Context
{

    public class CLSContext : DbContext
    {
        public DbSet<Listing> Listings { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Listing>().Map(...?)
        }
    }
}

2 个答案:

答案 0 :(得分:1)

您将不得不单独映射每个属性:

modelBuilder.Entity<Listing>()
   .Property(l => l.YourProperty)
   .HasColumnName("PropertyName");

modelBuilder.Entity<Listing>()
   .ToTable("TableName");

答案 1 :(得分:1)

您不能同时使用CTP4和EF 4.0.3,它们是同一个库的不同版本。

我相信此功能已在某些时候从测试版中删除,并且不再是发货版本。