c# - 使用 Entity Framework 6 手工制作 POCO?

标签 c# asp.net entity-framework poco

我正在考虑将 EF 6 用于即将在一个非常大的组织中进行的小型项目。拥有 POCO 业务对象对我来说至关重要,但我能找到的关于如何使用 EF 进行 POCO 的所有选项似乎都依赖于自动生成工具,这些工具试图将整个数据库结构映射到 POCO 对象。我们有许多数据库、数百个表和数百个 View ,我暂时只希望使用其中的几个表(任何一个项目都只希望使用其中的一小部分)。

此外,我不想一定要映射出许多外部属性,甚至这些表存储的一些普通属性。所以我真的很想手工制作这些 POCO 对象,然后将它们连接到 EF 并让它进行映射——我希望仍然能够使用 EDMX 文件,而不必制作我自己的 ObjectContext,如果可能的话.

我觉得这必须非常简单,但我真的找不到任何资源!如果有人能指出我正确的方向,那将非常有帮助。

最佳答案

Entity Framework 有一个 Code First 方面,它也可以映射到现有表。这允许您使用 POCO 来表示您的表。您可以创建允许您将 POCO 与数据库映射逻辑分开的映射类。

您可以指定表列的命名是否与 POCO 不同。如果两者之间没有区别,则可以省略。

using ProjectName.Models;
using System;
using System.Collections.Generic;
using System.Data.Entity.ModelConfiguration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

public class ProfileMapping : EntityTypeConfiguration<Profile>
{
    public ProfileMapping()
    {
        // Primary Key
        this.HasKey(t => t.Id);

        // Map POCO name to Column Name
        this.Property(t => t.Firstname)
            .HasColumnName("First_Name")
            .HasMaxLength("256");


        // Table Mapping
        this.ToTable("Profiles");

        // Relationships
        this.HasRequired(t => t.Roles);
    }
}

使用 DbContext,您可以注册这些映射。

我建议使用 Entity Framework Power Tools 从现有数据库生成 DbContext。

http://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d

关于c# - 使用 Entity Framework 6 手工制作 POCO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21590431/

相关文章:

c# - 调整 MVC 4 WebApi XmlSerializer 丢失 nameSpace

c# - 如何从 C# 代码创建 .chm 文件?

带有子菜单项的 asp.net 菜单,由后面的代码重定向

c# - Code First - 自引用一对多关系

c# - Entity Framework ——通过名称获取实体

c# - 树结构的 C++ API 性能问题

c# - 如何创建 C# 通用 Linq 查询器?

asp.net - 如何打包/发布 PDF 进行部署?

c# - asp.net 与 c#

c# - EF 6 是否支持 SQL Server 2014 类型?