asp.net:更改外键的值不会更改导航值

时间:2015-10-24 12:39:20

标签: c# asp.net asp.net-mvc-4

我有一本书模型:

public class Book
{
    [Required]
    [Key]
    public int BookId { get; set; }

    [Required]
    [StringLength(60, MinimumLength = 3)]
    public string Title { get; set; }

    [RegularExpression(@"^[A-Z]+[a-zA-Z''-'\s]*$")]
    [Required]
    [StringLength(30)]
    public string Genre { get; set; }

    [Required]
    [DataType(DataType.Currency)]
    public decimal Price { get; set; }
}

包含对Book模型的引用的Transaction模型:

public class Transactions
{
    [Key]
    public int TransactionsId { get; set; }
    public DateTime BuyTime { get; set; }

    public int BookId { get; set; }
    [ForeignKey("BookId")]
    public Book book { get; set; }
}

我的问题是,当我创建新的交易并将BookId设置为' 1' book属性保持为null:

Transactioncs transaction = new Transactioncs();

// Init the book of the transaction
transaction.BookId = 1;

根据我的理解,当我更改外键时,导航属性(在这种情况下它的书' book')应该相应地改变(因为我有一本id = 1的书在我的数据库)。 有人可以向我解释为什么导航属性不会改变吗?

由于

0 个答案:

没有答案