public class Location
{
[JsonProperty("Id")]
public int Id { get; set; }
[JsonProperty("Name")]
[Required]
public string Name { get; set; }
[JsonProperty("Address")]
public string Address { get; set; }
public NpgsqlTsVector SearchVector { get; set; }
/**
Navigation Property
*/
public Location ParentLocation { get; set; }
[JsonProperty("Children")]
public virtual ICollection<Location> ChildrenLocation { get; set; }
}
этот самоссылающийся класс сущностей генерирует поле "ParentLocationId" в базе данных (скрытый ключ).
Добавить, когда я использую следующий код для обновления ..
public async Task<Location> UpdateLocation(Location location, int? moveToParentLocation)
{
// this work
// _context.Entry(location).Property("ParentLocationId").CurrentValue = moveToParentLocation;
// this not work
_context.Entry(location).Reference(loc => loc.ParentLocation).CurrentValue = null;
_context.Locations.Update(location);
await _context.SaveChangesAsync();
return location;
}
Reference()
не работает, и потому что я не хочу жестко кодировать поле базы данных с Property()
, что я сделал не так.
PS. Местоположение, отправленное этому методу, еще не прикреплено к DBContext
.