我正在尝试将所有域类转换为使用流利的API配置,以从中删除所有数据注释。
我在外键配置上有些挣扎。
在以下课程中
public class AccountPnL
{
public int AccountPnlId { get; set; }
[ForeignKey("Account")]
public int AccountId { get; set; }
public Account Account { get; set; }
public DateTime TradeDate { get; set; }
public decimal? TotalCommodityPnL { get; set; }
public decimal? TotalCommodityOptionsPnL { get; set; }
public decimal? TotalEquityPnL { get; set; }
public decimal? TotalEquityOptionsPnL { get; set; }
}
数据注释在迁移时会产生以下内容
table.ForeignKey(
name: "FK_AccountPnLs_Accounts_AccountID",
column: x => x.AccountID,
principalSchema: "BatlCtx",
principalTable: "Accounts",
principalColumn: "AccountId",
onDelete: ReferentialAction.Cascade);
我正在尝试创建流畅的API代码以产生相同的结果,即每1个AccountPnL关系有1个帐户。我尝试了许多方法,包括Microsoft文档中有关Fluent API的方法,但由于文章是2016年以来的,所以似乎已经过时了。(即.Entity不再是构建器上的方法)
我在注释掉数据注释后的最新尝试
builder.HasOne(u => u.Account)
.WithMany(v => v.AccountPnLs)
.HasForeignKey(x => x.AccountId)
.HasConstraintName("FK_AccountPnLs_Accounts_Id");
在迁移中产生与DataAnnotation相同的代码,但是 我确实读过,如果使用fluent API进行配置,则该类不再需要这些属性。
如果这些属性不再在类中,那么如何引用Account和AccountId?
在类中未定义导航属性时,是否有其他方法可以编写流畅的API?