Мы используем EF 4.1 и свободный API для получения данных из старой базы данных (не можем изменять базу данных). У нас возникла проблема создания связи между двумя таблицами, где соответствующие столбцы НЕ являются первичными и внешними ключами.
С приведенными ниже классами, как нам настроить отношение "один ко многим" между Report и RunStat таким образом, что Report.RunStats вернет все объекты RunStat, где поля ReportCode равны.
public class Report
{
[Key]
public int ReportKey { get; set; }
public string Name { get; set; }
public int ReportCode { get; set; } // Can we associate on this field
public virtual ICollection<RunStat> RunStats { get; set; }
}
public class RunStat
{
[Key]
public int RunStatKey { get; set; }
public int ReportCode { get; set; }
public DateTime RunDate { get; set; }
}
В основном я хочу использовать Fluent API для настройки EF, чтобы думать, что Report.ReportCode - это ForeignKey и RunStat.ReportCode - это PrimaryKey.