EF7脚手架不创建列
EF7 Scaffolding not creating columns
我有一个看起来像这样的模型:
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; }
}
在 DbContext 中,我像这样连接它们:
entityTypeBuilder.HasOne(x => x.BuyerAddress).WithOne(x => x.Order).IsRequired(false);
entityTypeBuilder.HasOne(x => x.SellerAddress).WithOne(x => x.Order).IsRequired(false);
当我运行
dnx ef migrations add Foo
dnx ef database update
正在使用某些属性创建 table,但缺少其他属性,例如 SellerAddress
(尽管 BuyerAddress
正在创建中)。
其他实体也有同样的问题,例如 User
<-> BankAccount
这是一个 1:1 关系,定义为 entityTypeBuilder.HasOne(x => x.BankAccount).WithOne(x => x.User).IsRequired(false);
有人知道怎么回事吗?我正在使用 Entity Framework 7.0.0-rc1-final。这个问题快把我逼疯了。
我解决了这个问题。首先我有外键属性,所以我的模型看起来像这样:
public Order Order {get;set;}
public Guid OrderId {get;set;}
我不喜欢这样,它会导致数据库中出现重复的列,因此我从我的模型中删除了 [EntityName]Id 属性。但正因为如此,EF 变得一头雾水,无法再弄清楚我要做什么。因此,对于所有 1:1 关系,我只是删除了等式一侧的导航 属性(所以现在订单有一个地址的引用,但地址不再有导航 属性 回到命令)。这解决了问题。
因此,对于我问题中的示例代码,我从 Address
.
中删除了 Order
属性
我有一个看起来像这样的模型:
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; }
}
在 DbContext 中,我像这样连接它们:
entityTypeBuilder.HasOne(x => x.BuyerAddress).WithOne(x => x.Order).IsRequired(false);
entityTypeBuilder.HasOne(x => x.SellerAddress).WithOne(x => x.Order).IsRequired(false);
当我运行
dnx ef migrations add Foo
dnx ef database update
正在使用某些属性创建 table,但缺少其他属性,例如 SellerAddress
(尽管 BuyerAddress
正在创建中)。
其他实体也有同样的问题,例如 User
<-> BankAccount
这是一个 1:1 关系,定义为 entityTypeBuilder.HasOne(x => x.BankAccount).WithOne(x => x.User).IsRequired(false);
有人知道怎么回事吗?我正在使用 Entity Framework 7.0.0-rc1-final。这个问题快把我逼疯了。
我解决了这个问题。首先我有外键属性,所以我的模型看起来像这样:
public Order Order {get;set;}
public Guid OrderId {get;set;}
我不喜欢这样,它会导致数据库中出现重复的列,因此我从我的模型中删除了 [EntityName]Id 属性。但正因为如此,EF 变得一头雾水,无法再弄清楚我要做什么。因此,对于所有 1:1 关系,我只是删除了等式一侧的导航 属性(所以现在订单有一个地址的引用,但地址不再有导航 属性 回到命令)。这解决了问题。
因此,对于我问题中的示例代码,我从 Address
.
Order
属性