Bill と BillType の 2 つのクラスがあります。各 Bill には BillType があり、TypeId は FK である必要があります。Code First を使用して、BillType_TypeId という名前のデータベース テーブル Bills に、テーブル BillTypes との FK 関係を持つ列が追加されます。
public class Bill
{
[Key]
public int BillId { get; set; }
[Required, MaxLength(100)]
public string Name { get; set; }
[Required]
public decimal Amount { get; set; }
public System.DateTime DueDate { get; set; }
[Required]
public Guid UserId { get; set; }
}
public class BillType
{
[Key]
public int TypeId { get; set; }
[Required, MaxLength(100)]
public string Name { get; set; }
public virtual List<Bill> Bills { get; set; }
}
TypeId を Bills テーブルに挿入する必要があるときに問題が発生します。このコードを使用して挿入しています:
public class BillActions
{
private BillContext _db = new BillContext();
public Boolean InsertNewBill(int billType, string name, decimal amount, DateTime dueDate, Guid userId)
{
var bill = new Bill {
xxx <-- problem is here
Name = name,
Amount = amount,
DueDate = dueDate,
UserId = userId
};
_db.Bills.Add(bill);
_db.SaveChanges();
return true;
}
}
int billType と等しい公開オブジェクトはありません。FK 制約を維持しながら追加する方法がわかりません。どうすればこれを達成できますか。また、Entity Framework 5 を使用しています。