【发布时间】:2016-07-21 12:42:10
【问题描述】:
添加对非抽象导航属性的引用很好:
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),我不能像使用 Reference 类一样实例化 Parent 类(因为它是抽象的)。
如何为抽象 Parent 类添加对现有实体的引用?我想我可以将OtherId 属性添加到Entity 类并设置它,但我想尽可能避免污染实体
【问题讨论】: