EF Code First ForeignKey not Updated
本文关键字:not Updated ForeignKey First Code EF | 更新日期: 2023-09-27 18:19:18
我试图更新数据库中的记录。这个记录的数据来自MVC Api调用
在来自Api调用的对象中,对客户的引用已被更改。
类:
public class Visit
{
public int Id { get; set; }
public DateTime Start { get; set; }
public virtual Customer Customer { get; set; }
}
public class Customer
{
public int Id { get; set; }
}
API变更节选:
db.Entry(visit).State = EntityState.Modified;
if (visit.Customer.Id == 0) db.Entry(visit.Customer).State = EntityState.Added;
try
{
db.SaveChanges();
}
当我检查访问对象时,我看到访问的Customer Property与原始的不同,但跟踪db.SaveChanges();显示对表....
的[Customer_Id]没有更改exec sp_executesql N'update [dbo].[Visits]
set [StartVisit] = @0, [EndVisit] = null, [Activities] = @1, [Paid] = @2
where ([Id] = @3)
',N'@0 datetime2(7),@1 nvarchar(max) ,@2 bit,@3 int',@0='2014-08-31 14:21:26.7800000',@1=N'text ',@2=0,@3=33
为什么EF没有看到这个变化?或者,我必须做些什么,以便EF看到更改,并更新Customer_Id记录?
不要只使用Id。而是使用visiid和CustomerId。当您添加外键时,必须添加FK和该类的实例,以便该列存在于数据库中。
public class Visit
{
public int VisitId { get; set; }
public DateTime Start { get; set; }
public int CustomerId { get; set; }
public virtual Customer Customer { get; set; }
}
public class Customer
{
public int CustomerId{ get; set; }
}