Laden einen Verweis auf eine nicht-abstrakte Navigationseigenschaft Hinzufügen ist in Ordnung:Entity Framework - Verweis auf abstrakte Navigationseigenschaft hinzufügen, ohne
class Entity {
int Id { get; set; }
Reference Reference { get; set; }
Parent Other { get; set; }
}
class Reference {
int Id { get; set; }
}
abstract class Parent {
int Id { get; set; }
}
class Child : Parent { }
async Task DbMethod() {
using(var context = new XYZDbContext()) {
var reference = new Reference { Id = 6 };
context.Attach(reference);
var entity = new Entity {
Id = 3,
Reference = reference,
};
context.Add(entity);
await context.SaveChangesAsync();
}
}
Aber wenn ich die Other
Eigenschaft zu einem vorhandenen Datensatz (sagen id setzen wollten 42), kann ich nicht die Klasse Parent
(wie es abstrakt ist) instanziieren wie ich mit der Reference
Klasse.
Wie würde ich einen Verweis auf eine vorhandene Entität für die abstrakte Klasse Parent
hinzufügen? Ich stelle mir vor, dass ich eine OtherId
Eigenschaft auf die Entity
Klasse hinzufügen könnte und festgelegt, dass, aber ich möchte, wenn möglich
Das Beispiel ist der Kürze halber konstruiert. Die Klasse muss abstrakt sein – flipchart