实体的框架4-自定义的复杂类型的映射
-
24-10-2019 - |
题
我有个不好写入遗留系统的数据库架构,我的工作与通过EF代码的第一个。目前,我正在映POCO实体和想要创建一个"地址"复杂的类型和使用这种无处不在街道地址的信息被存储。不幸的是,并非所有的地址域名的相同的数据库(ie。一个表中可能有"Address1",而另一个表中将有"Street1",即使它们涉及同样的事情。
有一种方式来创建的定制映射一个复杂的类型的基础上给予实体?这是什么映看起来像什么?
解决方案
是的,你可以实现这一口流利的API。这里是一个例子:
public class User
{
public int UserId { get; set; }
public Address Address { get; set; }
}
public class Customer
{
public int CustomerId { get; set; }
public Address Address { get; set; }
}
[ComplexType]
public class Address
{
public string Street { get; set; }
public string City { get; set; }
}
public class Context : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Customer> Customers { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().Property(u => u.Address.Street)
.HasColumnName("UserStreet");
modelBuilder.Entity<Customer>().Property(u => u.Address.Street)
.HasColumnName("CustomerStreet");
}
}
不隶属于 StackOverflow