我在我的项目中使用 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 而不是整数?