我是设计数据库的新手。
我有问题如何定义一个域类,该域类具有多个与同一主键链接的外键。
这是我的模特:
namespace OceanFmsSystem.Domain
{
public class ExportTemplate
{
public int Id { get; set; }
public List<ExportBooking> ExportBookings { get; set; }
public string TemplateName { get; set; }
public int CustomerId { get; set; }
public string Incoterms { get; set; }
public string IncotermsDetail { get; set; }
public string PaymentTerm{ get; set; }
public int CountryOriginId { get; set; }
public int CountryDestinationId { get; set; }
}
}
我想做的是CountryOriginId
&amp; CountryDestinationId
应将以下类称为外键:
namespace OceanFmsSystem.Domain
{
public class Country
{
public int Id { get; set; }
public string CountryCode { get; set; }
public string CountryName { get; set; }
}
}
据我所知,在EF Core中有一个约定,我应该将外键命名如下,以便从代码迁移到数据库。
public type ClassNameOfPrimaryKeyId { get; set;}
有没有办法让这种情况发生?
答案 0 :(得分:0)
是的,可能。你的课应该是这样的:
public class ExportTemplate
{
//...
public int CountryOriginId { get; set; }
public Country CountryOrigin { get; set; }
public int CountryDestinationId { get; set; }
public Country CountryDestination { get; set; }
}
EF非常聪明,可以按惯例计算ID。如果您不希望遵循约定,可以使用属性上的[ForeignKey]属性来配置FK:
[ForeignKey("Origin")]
public int MyOriginId { get; set; }
public Country Origin { get; set; }