我有一个数据库,它必须将我们项目中的所有活动记录到非常具体的事件中 - 因此,每天都会创建一堆记录。由于我想最小化数据库大小,我通过使用NotMapped注释标记所有条目子类来摆脱Discrimintator列。例如:
我有两个班级:
$("#date_filter").on('load change', update);
$(document).on('ready', update);
function update() {
var month = $(this).find(":selected").val();
console.log("month: "+month);
var pattern = new RegExp(month, "i");
$('body').find('.date').each(function() {
if (($(this).children('p').text().search(pattern) <= 0)) {
$(this).hide();
}
if (($(this).children('p').text().search(pattern) >= 0)) {
$(this).show();
}
if (month === "0") {
$(this).find('.date').show();
}
});
}
这一切都运行正常,我没有Discriminator专栏,但这里抓住了。我为每个派生类都有一个不同的Validate()方法(类和数据非常复杂)。当我解析数据时,我创建一个Child类,填写数据列表,运行Validate()函数,如果它返回true,我想将 Base 对象添加到数据库中。现在EF不会让我,因为它仍然将对象检测为Child(它实际上位于底层,但仍然存在)。我得到一个异常,告诉我没有找到Child类的映射数据,插入失败。有没有办法解决这个问题,而没有将Child深入复制到新的Base对象中?