Entity framework EF7脚手架不创建柱

Entity framework EF7脚手架不创建柱,entity-framework,database-migration,entity-framework-core,entity-framework-migrations,Entity Framework,Database Migration,Entity Framework Core,Entity Framework Migrations,我有一个这样的模型: public class Order { // removed irrelevant other properties public Guid Id { get; set; } public Address BuyerAddress { get; set; } public Address SellerAddress { get; set; } } public class Address { public Guid Id { ge

我有一个这样的模型:

public class Order
{
    // removed irrelevant other properties
    public Guid Id { get; set; }
    public Address BuyerAddress { get; set; }
    public Address SellerAddress { get; set; }
}

public class Address
{
    public Guid Id { get; set; }
    public string Street { get; set; }
    public Order Order { get; set; }
}
entityTypeBuilder.HasOne(x => x.BuyerAddress).WithOne(x => x.Order).IsRequired(false);
entityTypeBuilder.HasOne(x => x.SellerAddress).WithOne(x => x.Order).IsRequired(false);
public Order Order {get;set;}
public Guid OrderId {get;set;}
在DbContext中,我将它们连接为:

public class Order
{
    // removed irrelevant other properties
    public Guid Id { get; set; }
    public Address BuyerAddress { get; set; }
    public Address SellerAddress { get; set; }
}

public class Address
{
    public Guid Id { get; set; }
    public string Street { get; set; }
    public Order Order { get; set; }
}
entityTypeBuilder.HasOne(x => x.BuyerAddress).WithOne(x => x.Order).IsRequired(false);
entityTypeBuilder.HasOne(x => x.SellerAddress).WithOne(x => x.Order).IsRequired(false);
public Order Order {get;set;}
public Guid OrderId {get;set;}
当我跑的时候

dnx ef migrations add Foo
dnx ef database update
正在使用某些属性创建表,但缺少其他属性,如
SellerAddress
(尽管
BuyerAddress
创建得很好)

其他实体也存在同样的问题,例如
User
BankAccount
,这是一种1:1关系,定义为
entityTypeBuilder.HasOne(x=>x.BankAccount)。WithOne(x=>x.User)。IsRequired(false)


有人知道怎么回事吗?我使用的是实体框架7.0.0-rc1-final。这个问题快把我逼疯了。

我解决了这个问题。首先,我有外键属性,所以我的模型如下所示:

public class Order
{
    // removed irrelevant other properties
    public Guid Id { get; set; }
    public Address BuyerAddress { get; set; }
    public Address SellerAddress { get; set; }
}

public class Address
{
    public Guid Id { get; set; }
    public string Street { get; set; }
    public Order Order { get; set; }
}
entityTypeBuilder.HasOne(x => x.BuyerAddress).WithOne(x => x.Order).IsRequired(false);
entityTypeBuilder.HasOne(x => x.SellerAddress).WithOne(x => x.Order).IsRequired(false);
public Order Order {get;set;}
public Guid OrderId {get;set;}
我不喜欢这样,这会导致数据库中出现重复的列,因此我从模型中删除了[EntityName]Id属性。但正因为如此,EF被弄糊涂了,再也弄不明白我想做什么了。因此,对于所有1:1关系,我只是删除了等式一侧的导航属性(因此现在Order有一个地址引用,但Address不再有返回Order的导航属性)。这就解决了问题


因此,对于我问题中的示例代码,我将
Order
属性从
Address

中删除。查看Migrations文件夹中的迁移脚本,看看它在做什么…@NovaDev我做了什么,它只是确认它没有创建列。我想知道为什么。我需要EF来正确生成迁移。