在EF中无需复制的向下转换对象

时间:2017-01-12 14:49:09

标签: c# .net inheritance entity-framework-6

我有一个数据库,它必须将我们项目中的所有活动记录到非常具体的事件中 - 因此,每天都会创建一堆记录。由于我想最小化数据库大小,我通过使用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对象中?

0 个答案:

没有答案