Я использую Entity Framework.
Моя сущность клиента:
public partial class Customer
{
public virtual int ID { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual string CompanyName { get; set; }
}
И у меня есть класс BaseEntity, который наследуется частичным классом клиента.
public class BaseEntity
{
public virtual int ID { get; set; }
}
public partial class Customer : BaseEntity
{
}
После этого я создал общий метод следующим образом:
public static int GetId<T>(T entity) where T : BaseEntity
{
// id is zero after savechanges
var id = entity.ID;
return id;
}
Моя проблема возникла, когда я хочу получить идентификатор после SaveChanges () в общем методе, это ноль - 0.
Мойкод теста:
var db = new ContextDb();
db.Customers.Add(customer);
db.SaveChanges();
WriteLine($@"{customer.ID}"); // OK
WriteLine($@"{GetId(customer)}"); // Not OK --> ZERO
Спасибо всем, что нашли время, чтобы попытаться помочь объяснить.