我有 2 个班 Bill 和 BillType。每个 Bill 都应该有一个 BillType,TypeId 应该是一个 FK。使用 Code First,向我的数据库表 Bills 添加一个名为 BillType_TypeId 的列,该列与表 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。