0

我正在尝试实现以下代码以将数据库映射到 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

我正在使用 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(...?)
        }
    }
}
4

2 回答 2

1

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

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

modelBuilder.Entity<Listing>()
   .ToTable("TableName");
于 2012-09-21T17:37:16.443 回答
1

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

我相信此功能在某个时候已从 beta 中删除,并且不再包含在发布版本中。

于 2012-09-21T18:24:51.030 回答