【问题标题】:How to map a protected property in EF 4.3 code first如何首先在 EF 4.3 代码中映射受保护的属性
【发布时间】:2012-03-07 21:22:53
【问题描述】:

在 EF 4.3 文档中说:

默认情况下,使用 Code First 构建数据库不包括私有、受保护或内部属性。如果您在模型中手动包含这些属性,Code First 将忽略这些成员上的任何数据注释。此问题现已修复,Code First 会处理数据注释。

我的问题是如何首先在代码中手动包含受保护的属性,尤其是使用流畅的 API?

【问题讨论】:

    标签: entity-framework code-first


    【解决方案1】:

    【讨论】:

    • 由于我的域类和 DbContext 在两个程序集中分离,我将持久性属性更改为受保护的内部并添加 [程序集:InternalsVisibleTo("TheAssemblyWhichContainsDbContext")],现在它可以工作了。谢谢。
    • 我喜欢 Drew 分享的想法。这实际上是迄今为止我见过的最好的解决方法,因为它仍然是强类型的,并且它不会将您的映射与实体耦合 - 您的实体只是有一些奇怪的嵌套类,可以在内部制作,并且它只会在实体和实体之间可见映射组件。感谢分享。
    • @LadislavMrnka 我blogged 直接说,所以很容易搜索。
    【解决方案2】:

    使用 fluent API 是不可能的,因为 fluent API 使用强类型方法,因此所有可访问性规则仍然存在。文档说数据注释应该是可能的,但我无法使其工作。

    【讨论】:

    • 我不能让数据注释对受保护的属性起作用:-(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    相关资源
    最近更新 更多