我正在尝试实现以下代码,将数据库映射到POCO,该POCO的属性名称与对应的列略有不同,并且类名与表名略有不同。
问题是没有名为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(...?)
}
}
}
答案 0 :(得分:1)
您将不得不单独映射每个属性:
modelBuilder.Entity<Listing>()
.Property(l => l.YourProperty)
.HasColumnName("PropertyName");
modelBuilder.Entity<Listing>()
.ToTable("TableName");
答案 1 :(得分:1)
您不能同时使用CTP4和EF 4.0.3,它们是同一个库的不同版本。
我相信此功能已在某些时候从测试版中删除,并且不再是发货版本。