Одна таблица на акцию - плохая идея.
Вы можете хранить данные для всех акций в свойстве Stock1
вашего класса DbContext.Добавьте свойство / столбец, чтобы различать название акции / StockId в таблице Equity.
Если вы используете StockI
, создайте таблицу Stock, и StockId
в вашей таблице Equity
будет иметь внешний ключподключение к таблице Stock.
public class Stock
{
public int Id { get; set; }
public string Ticker { set;get; }
public string Name { get; set; }
}
public class Equity
{
[Key]
public int Id { get; set; }
public DateTime Date { get; set; }
[ForeignKey("Instruments")]
public int InstrumentId { get; set; }
public virtual Instruments Instruments { get; set; }
public double Open { get; set; }
public double Close { get; set; }
public double High { get; set; }
public double Low { get; set; }
public int Volume { get; set; }
public int StockId { set;get;}
public virtual Stock Stock { set;get;}
}
Теперь в вашем классе DbContext у вас будет только одно свойство типа DbSet<Equity>
.С помощью этого вы можете получить доступ ко всем записям Акций или отфильтровать их в соответствии с вашими потребностями (например: Получить записи по конкретным Акциям)
public DbSet<Equity> Equities { get; set; }
Чтобы получить данные по конкретным Акциям, вы обычно будете использовать фильтр.Например,
var stockIdOfMsft = 24;
var msftEquities = db.Equities.Where(a=>a.StockId == stockIdOfMsft).ToList();
Или
var msftEquities = db.Equities.Where(a=>a.Stock.Ticker == "MSFT").ToList();