我在我的项目中使用 Code First 方法。
这是我的对象:
public class Account
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid ID { get; set; }
public string name { get;set; }
}
如果我创建一条新记录就可以了:
using(var context = new context())
{
context.Accounts.add(account);
context.savechanges(); //This saves fine
}
但是当我更改一个属性时,它会在数据库中保存另一条记录:
using (var context = new context())
{
var account = context.Account.where(x => x.ID == GUID).FirstOrDefault();
if (account != null)
{
account.name = "UpdatedName";
context.savechanges(); // This creates a new record!!
}
}
我对实体框架相当陌生;为什么每次都创造新记录?是身份证上的属性吗?如果是,那么我如何使用 GUIDS 作为 ID 而不是整数?