如何避免迁移将数据分成两个表?

时间:2016-07-19 14:31:41

标签: c# entity-framework ef-code-first database-migration ef-migrations

在我的代码第一个应用程序中,我确实有一个类"客户"和"地址"。我的客户端类有Address类引用。例如

class Customer{
    public string name {get;set;}
    public Address address {get;set;}
}

class Address{
    public string street{get;set;}
    public string number{get;set;}
}

当我迁移这些数据时,我得到了一个包含这些列的表客户:

name
address_street
address_number

很棒。我的数据只在一个表中。这对我来说很完美!

但是我需要(出于其他原因)为地址添加ID。

class Address{
    [Key]
    public int EnderecoId { get; set; }
    public string street{get;set;}
    public string number{get;set;}
}

在这种情况下,迁移会将我的客户表拆分为客户和地址表。

name
addressId

street
number

有任何注释可以避免这种情况吗?我真的想在客户表中包含地址数据。

1 个答案:

答案 0 :(得分:0)

为了让代码首先识别这一点,您必须将Address类标记为[ComplexType]。然后,Address将作为Customer对象的一部分进行跟踪。

只需将[ComplexType]注释添加到地址类

即可
[ComplexType]
public class Address
{ 
    //...
}