У меня есть таблица «Заявлений», которая связана с обоими:
- таблица «Транзакций» (с внешним ключом на IdStatement)
- таблица «Конкретные транзакции». Класс «SpecificTransaction» наследуется от таблицы «Transaction»
Это существующий код First Model:
Табличная выписка
[Serializable]
[Table("Statement", Schema = "dbo")]
public class Statement
{
public Statement()
{
this.Transactions = new List<Transaction>();
this.SpecificTransactions = new List<SpecificTransaction>();
}
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int IdStatement { get; set; }
public List<Transaction> Transactions { get; set; }
public List<SpecificTransaction> SpecificTransactions { get; set; }
[... Other properties ...]
}
Таблица транзакций
[Serializable]
[Table("Transaction", Schema = "dbo")]
public class Transaction
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int IdTransaction { get; set; }
[ForeignKey("Statement")]
public Nullable<int> IdStatement { get; set; }
[... Other properties ...]
}
Таблица SpecificTransaction (наследуется от Transaction)
[Serializable]
[Table("SpecificTransaction", Schema = "dbo")]
public class SpecificTransaction : Transaction
{
[StringLength(255)]
public string UniqueValue { get; set; }
[StringLength(50)]
public string Status { get; set; }
[StringLength(50)]
public string Hash { get; set; }
[... Other properties ...]
}
Когда создается база данных, в мою таблицу SpecificTransaction добавляется нежелательное поле (т.е. столбец), которое называется «Statement_IdStatement».
Когда я пытаюсь добавить свое заявление, содержащее SpecificTransactions, ни один из следующих столбцов:
- Таблица транзакций> Столбец IdStatement
- Таблица SpecificTransaction> Столбец Statement_IdStatement
Заполняется IdStatement, я должен добавить Id позже.
Кроме того, когда я присваиваю «IdStatement» в моей таблице «SpecificTransaction», заполняется только столбец «Statement_IdStatement», а не «IdStatement» моего оператора таблицы.
Есть ли способ:
избежать создания столбца "Statement_IdStatement" и сохранения моего кода EF. Первый класс таким образом? (или, по крайней мере, не вносить изменений в таблицы выписка и транзакция)
Когда я добавляю свои выписки, содержащие SpecificTransactions, и я сохраняю изменения, столбец «Транзакция»> «IdStatement» заполняется автоматически?
Заранее спасибо.