0
添加到非抽象的導航屬性的引用是好的:實體框架 - 添加引用抽象的導航性能,而無需加載
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();
}
}
但是,如果我想的Other
屬性設置爲現有的記錄(比如ID 42),我不能實例化Parent
類(因爲它是抽象的),就像我對Reference
類所做的那樣。
如何爲抽象Parent
類添加對現有實體的引用?我想,我可以一個OtherId
屬性添加到Entity
類和設置,但我想,以避免污染實體如果可能的話
這個例子是爲了簡潔起見而設計的。該課程必須是抽象的 – flipchart