实体框架:类型“映射为复杂类型”错误

2023-12-29

在我的数据库中,我有一个名为“tracking”的表,其中包含以下列:

[OrderNumber] [varchar](50) NULL,
[TrackingNumber] [varchar](50) NULL,
[emailaddress] [varchar](100) NULL,
[courier] [varchar](10) NULL

我有一个名为 Tracking 的类来表示表中的实体:

public class Tracking
{
    public virtual string OrderNumber { get; set; }
    public virtual string TrackingNumber { get; set; }
    public virtual string EmailAddress { get; set; }
    public virtual string Courier { get; set; }
}

在我的数据上下文的定义中

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

internal class TrackingConfig : EntityTypeConfiguration<Tracking>
{
    internal TrackingConfig()
    {
        Property(x => x.OrderNumber);
        Property(x => x.TrackingNumber);
        Property(a => a.EmailAddress).HasColumnName("emailaddress");
        Property(a => a.Courier).HasColumnName("courier");
    }
}

正如您所看到的,我没有明确地将其转换为复杂类型。我什至使用 HasColumnName 来指定哪个列名映射到类的哪个属性,以防万一由于大小写差异而无法识别它们。 (事实证明,无论是否使用 HasColumnName,我收到的错误都会发生。)

当我出于任何原因调用我设置的存储库时,初始化失败并且实体框架抛出异常:

The type 'Tracking' is mapped as a complex type. The Set method, DbSet objects, and DbEntityEntry objects can only be used with entity types, not complex types.

我没有将其设置为复杂类型...为什么 EF4 将其视为复杂类型?


看起来这与将字段声明为虚拟字段有关。您还可以使用数据注释来覆盖表和列名称,以匹配现有的数据库架构。下面是我如何设置 POCO 模型和 dbcontext。

[Table("tracking")]
public class Tracking
{
    public string OrderNumber { get; set; }
    public string TrackingNumber { get; set; }

    [Column(Name = "emailaddress")]
    public string EmailAddress { get; set; }

    [Column(Name = "courier")]
    public string Courier { get; set; }
}

public class TrackingEntities : DbContext
{
    public DbSet<Tracking> Trackings { get; set; }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实体框架:类型“映射为复杂类型”错误 的相关文章

随机推荐

  • 添加按钮 HTML 的链接

    我正在尝试添加链接到我的按钮 我当前的 HTML 代码如下 td td
  • Thinktecture 身份服务器 3 单点登录

    我希望有人指出我正确的方向 我在 IIS 上设置了身份服务器 3 并在该身份服务器上设置了 2 个不同的 MVC 客户端 我对单点登录有点困惑 我希望能够实现单点登录 然而 当我登录时 每个客户端网站都会设置自己的 aspNet 会话 co
  • 如何部署 yeoman Angular-fullstack 项目?

    我想部署一个用 Angular 全栈制作的简单 Angular 项目 https github com DaftMonk generator angular fullstack https github com DaftMonk gener
  • 使用 Zend Framework 的查询构建器

    我刚刚开始我的 PHP Zend 框架世界之旅 我的应用程序的目的是使用 Zend 开发查询生成器 该应用程序将被网络中的许多用户同时使用 当用户根据应用程序提供的某些条件进行搜索时 系统将从大型数据库 超过5000万条记录甚至更多 中获取
  • 如何在 React Native 中添加自定义字体而不使用 Xcode?

    有没有办法在 Atom 编辑器的 React Native 中添加自定义字体而不是使用 Xcode 有一种更简单的方法可以通过命令行执行操作rnpm 它为 android 和 ios 添加了字体 将要添加的字体放置到项目目录内的合适位置 在
  • Java:JDBC数据库连接池

    HI 我有一个多线程 Java 数据库应用程序 我们必须创建一个定制的数据库池 原因是我们的一些准备好的语句必须缓存在连接中 我们的原始解决方案基于一个免费的哈希图 另一个锁定的哈希图 对于hashmap 我们必须使用synchronize
  • 使用 gtkmm 构建的 Glade TreeView

    我有一个空地构造的 TreeView ListStore 我正在尝试将其加载到应用程序中并通过 gtkmm 进行操作 这是经理的课程 typedef struct Gtk ListStore liststore info Gtk TreeM
  • 使用 google API 更新电子表格

    我正在尝试使用 node js googleapis v4 并使用 JWT 客户端授权来更新给定的电子表格单元格 阅读效果很好 但我不明白如何写 new Promise resolve reject gt sheets spreadshee
  • Meteor `onRendered` 仅调用一次

    经过几个小时的实验和阅读 我仍然不明白为什么myTemplate onRendered function 只被调用一次 根据您阅读的位置 您会获得不同的信息 但显然每次内部 HTML 更改时都会调用它 这在我的实验中不会发生 它只会被调用一
  • 如何序列化 boost::dynamic_bitset?

    如何使用 boost dynamic bitset 成员序列化类 include
  • 如何等待 Kubernetes 为 LoadBalancer 服务分配外部 IP?

    创建一个Kubernetes 负载均衡器 http kubernetes io v1 1 docs user guide services html type loadbalancer立即返回 例如 kubectl create f or
  • 如何使用 AngularFire、Firestore 和 Firebase 分页到上一页

    抱歉 我看到这个问题在这里以不同的方式被问过很多次 例如 如何在 Angular 6 和 firebase Firestore 设置中分页回以前的页面 https stackoverflow com questions 51831193 h
  • 屏幕支持使用layout-large、layout-normal和layout-xlarge文件夹的多个设备

    我创建布局大 正常布局 and 布局 xlarge in the res文件夹 我将所有 xml 文件复制到这些布局文件夹中 首先我想问一下有什么区别layout the default and 正常布局 folder 我知道如果我在大屏幕
  • 如何使用java计算极大指数数的余数?

    如何使用 java 计算极大指数数的余数 例如 48 26 2401 我尝试使用 BIGINTEGER 但是它为大除数提供了相同的输出 我不确定 BIGINTEGER 是否可以做到这一点 我尝试了所有其他 PRIMITIVE 数据类型 它们
  • 将对象声明为易失性对象

    如果在Java中将一个成员变量声明为易失性 这是否意味着该对象的所有数据都存储在易失性内存中 或者对该对象的引用存储在易失性内存中 例如 如果我有以下课程 class C int i 0 char c c 如果我按如下方式声明它的实例 pr
  • 每当你输入 python 时 winpty python.exe

    我正在尝试为我的Python别名 bashrc文件 我输入此命令是为了告诉 Git Bash 在哪里可以找到 Python 可执行文件 python version winpty 从我的 Git Bash 中 不幸的是 我收到此错误 MIN
  • Redisson NoSuchFieldError:WRITE_BIGDECIMAL_AS_PLAIN

    我刚刚通过maven导入了redisson 1 0 3 在默认端口上的localhost上设置了一个redis服务器 并想尝试一下redisson redis客户端 我的测试代码如下所示 Redisson redis Redisson cr
  • 带有 EclipseLink 和 Java SE 的 JPA

    将项目jar文件导出到文件服务器后 jpa的entitymanager的创建不再起作用 有以下详细信息 我使用 Glassfishv3 项目中的 EclipseLink 我从网站下载了 EclipseLink 2 4 org eclipse
  • 如何使用 Nestjs 和 apollo 服务器拼接多个远程模式

    首先 我对在 Stack Overflow 上发帖还很陌生 但我当然会尽力在这里获取所有相关信息 并分享找到的解决方案 因为我可以想象更多的人可能会遇到这个问题 因此 我们从一个具有多个小型微服务作为后端的系统开始 我们发现 Apollo
  • 实体框架:类型“映射为复杂类型”错误

    在我的数据库中 我有一个名为 tracking 的表 其中包含以下列 OrderNumber varchar 50 NULL TrackingNumber varchar 50 NULL emailaddress varchar 100 N