示例
我有一个场景,我在单个实体中为DB中的两个表定义了1对1的关系。我这样做是通过使用以下映射(名称已被更改以保护无辜):
modelBuilder.Entity<SingleEntity>()
.Map(map =>
{
map.Properties(p => new
{
p.MetaData1,
p.MetaData2,
p.Foo,
p.Bar
});
map.ToTable("EntityInfo");
})
.Map(map =>
{
map.Properties(p => new
{
p.BinaryArray,
p.ContentType,
p.FileName
});
map.ToTable("EntityDocument");
});
这给了我域中的单个实体,但是将与该实体关联的数据保存到两个不同的表中。这样做是为了可以检索文档上的元数据,而无需在查询上提取每个文档的整个二进制文件。
当需求是Document Meta数据总是有一个与之关联的文档时,这就有用了......然后需求发生了变化(因为他们不习惯)。现在我们可以在尚未存在的文档上获得元数据。
我的问题
我想用1到0..1的关系建模相同的实体 ,不用 将实体分成两个实体。基于我到目前为止所做的搜索,我不确定是否可以这样做,但如果我错了(我希望我是),我真的更愿意将此对象建模为像以前一样的单个实体。
知道如何在Entity Framework中映射这种类型的关系吗?