Ahm*_*aba 8 entity-framework-core asp.net-core-2.0 entity-framework-core-migrations
我正在尝试使用 EF 核心 2 代码优先方法添加迁移。问题是,具有外键关系的实体是使用末尾带有“1”后缀的外键 id 和具有相同名称但末尾没有 1 的冗余列创建的,这不是外键。
示例是我的 2 个类,Store 和 StoreVisit,如下所示:
店铺
[Table("Store")]
public class Store
{
public Store()
{
StoreVisits = new HashSet<StoreVisit>();
}
[Key]
public int StoreId { get; set; }
[StringLength(30)]
public string ShopName { get; set; }
[StringLength(50)]
public string ShopKeeper { get; set; }
public string ContactNo { get; set; }
[StringLength(70)]
public string Address { get; set; }
[StringLength(20)]
public string Street { get; set; }
[StringLength(50)]
public string City { get; set; }
public IEnumerable<StoreVisit> StoreVisits { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
店铺参观
[Table("StoreVisit")]
public class StoreVisit
{
[Key]
public int StoreVisitId { get; set; }
[StringLength(50)]
public string Location { get; set; }
[StringLength(50)]
public string Notes { get; set; }
[DataType(DataType.Time)]
public DateTime StartTime { get; set; }
[DataType(DataType.Time)]
public DateTime EndTime { get; set; }
public Store Store { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Visit 类是在数据库中创建的,列如下图所示:
如您所见,StoreVisit 表具有列“StoreId1”(实际外键)和“StoreId”(非外键)列。
我什至配置了与 Fluent API 的关系如下:
modelBuilder.Entity<Store>()
.HasMany(c => c.StoreVisits)
.WithOne(e => e.Store)
.IsRequired();
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗。
小智 1
需要在类上定义外键。
[Table("StoreVisit")]
public class StoreVisit
{
[Key]
public int StoreVisitId { get; set; }
public int StoreId { get; set; }
[StringLength(50)]
public string Location { get; set; }
[StringLength(50)]
public string Notes { get; set; }
[DataType(DataType.Time)]
public DateTime StartTime { get; set; }
[DataType(DataType.Time)]
public DateTime EndTime { get; set; }
public Store Store { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
将外键引用添加到 Fluent API 也会造成伤害。
modelBuilder.Entity<Store>()
.HasMany(c => c.StoreVisits)
.WithOne(e => e.Store)
.HasForeignKey(e => e.StoreId)
.IsRequired();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4642 次 |
最近记录: |