0

我有三个共享一个公共基类的实体。每个实体都有自己的 Map 类用于我的上下文并且加载得很好。每个实体都有一个不同的主键名称,我在基类中对其进行了重命名,因此我可以在使用相同属性名称的同时使用这三个实体的通用方法。

访问数据库时,一切都映射得很好,例如我可以这样做db.Vehicle.Where(v => v.VehicleID < 100),它转换为不同于VehicleID.

问题是我现在想走相反的方向。因此,例如,我可能有字符串"Length",但在一个表中它可能Length1在另一个表中Length2。我想使用我在模型构建器中使用的相同映射,以便能够根据基类中的 () 属性转换"Length"为任何相应的值。v => v.Length

有没有人对如何实现这一点有任何想法?

4

1 回答 1

0

如果您已经尝试过这个 fluent API 并且它不起作用,那么我建议将该属性声明为虚拟的。

modelBuilder.Entity<ConcreteClass1>()
.Property(f => f.Length)
                .HasColumnName("Length1");

modelBuilder.Entity<ConcreteClass2>()
.Property(f => f.Length)
                .HasColumnName("Length2");
于 2013-05-22T10:32:31.473 回答