【问题标题】:.Net Entity Framework scaffolding for inherited classes用于继承类的 .Net 实体框架脚手架
【发布时间】:2016-02-05 13:32:43
【问题描述】:

我正在使用 Visual Studio 2010,mvc 4。我正在应用模型优先方法,并且我有一些类的层次结构。 VS 脚手架适用于所有其他类,甚至是层次结构的基类,但子类无法使用脚手架。我看到并理解只有基类进入我的 dbcontext 实现,我开始害怕直接将脚手架与子类一起使用的可能性为零。 我错过了什么还是应该停止搜索并开始手动制作它们?

【问题讨论】:

    标签: .net entity-framework inheritance scaffolding


    【解决方案1】:

    到目前为止,我找到了有趣的解决方案,但我仍在寻找不那么棘手的东西。让我解释一下: EDMX 仅向 ModelContainer 添加基类: 公共 DbSet 角色 { 获取;放; } 有了它,可以通过 context.Personas.Add() 很好地从/向数据库读取/写入数据 ... 但是,当我尝试为 ChildClass 模型制作控制器/视图时,脚手架会寻找数据库,但它不存在。 我棘手的解决方案:创建另一个部分类 ModelContainer 并在那里添加那些 DbSet。请记住,原件是自动生成的,不能永久手动编辑……嗯…… 更好的是,你可以将它添加到原来的ModeloContainer中,编译然后使用脚手架。它会正常工作并且不再需要它,所以如果您再次从 EDMX 重新生成 Container 类也没问题。

    但是,如果有人知道更好或更正确的方法,请在此处指出。

    【讨论】:

    • 您必须小心,当您添加另一个部分 MyDbContext 类时,自动生成器可以使用它作为配方来编写 DBSet<> 属性以及它的原始属性,有时会导致重复导致它不真实它有多个文件,并且只检查一个。
    猜你喜欢
    • 2011-05-19
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    相关资源
    最近更新 更多