У меня есть две таблицы ProductionLine
и Machine
. В таблице Machine
у меня есть внешний ключ до ProductionLine
по имени productionLine
.Как получить доступ к столбцу другой таблицы с внешним ключом
Я хочу получить доступ к колонке KeyId
в ProductionLine
из таблицы Machine
. моя машина Класс:
[Column("FldKeyId")]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Required]
[Key]
public int MyKeyId { get; set; }
[Column("FldCode")]
[Required]
[Index(IsUnique = true)]
public int MyMachineCode
{
get { return _MachineCode; }
set { _MachineCode = value; }
}
[Column("FldName")]
[Required]
public string MyName
{
get { return _Name; }
set { _Name = value; }
}
[Column("FldDescription")]
[Required]
public string MyDescription
{
get { return _Desc; }
set { _Desc = value; }
}
[Column("FldModifiedUserId")]
[Required]
public int ModifiedUserId { get; set; }
[Column("FldModificationDate")]
[Required]
public DateTime ModificationDate { get; set; }
[Column("FldDeleteFlag")]
[Required]
public int DeleteFlag { get; set; }
[Required]
public ProductionLine ProductionLine { get; set; }
и это DbContext Класс:
public DbSet<Machine> Machines { get; set; }
У меня есть этот код, но он бросает ошибку:
Machine _SelectedMachine;
_SelectedMachine = (cmbMachines.SelectedItem as Machine);
int Mid = _SelectedMachine.ProductionLine.MyKeyId;
dgvcolCompany.DataSource = ProductionLine.GetMachineLine(Mid);
и метод getMachineLine
:
public static List<ProductionLine> GetMachineLine(int KeyId)
{
return new ContexManager().ProductionLines.Where(c => c.MyKeyId == KeyId && c.DeleteFlag == 0).ToList();
}
При выполнении этого кода на линии
int Mid=...
Я получаю эту ошибку
Object reference not set to an instance of an object.
Что я должен делать?
Моих таблиц генерируются EF-кодой первого -задачей является Как получить доступ к KeyId поточной линии от поточной линии Компьютера
Можете ли вы показать Entity Конфигурация типа и определение класса для машины? –
@RichaGarg Мой код обновлен – sadeq
Вы не упомянули атрибут '[ForeignKey]' над свойством 'ProductionLine'. Как вы настраиваете его как внешний ключ? –