【问题标题】:Entity Framework Code First internal class - is it possible?实体框架代码优先内部类 - 可能吗?
【发布时间】:2011-11-23 23:11:05
【问题描述】:

是否可以将 Code First 数据类声明为具有内部访问权限,如下所示:

internal class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
}

我要求类及其属性在程序集之外不可见。

【问题讨论】:

  • 谁提出了这个愚蠢的要求?
  • @Diego - 这真的是一个不寻常的要求吗?
  • 是的。实体通常是公开的,并放置在自己的项目中。
  • @Minnie,你遇到错误了吗?真正的问题是什么?
  • @Minnie 很遗憾,确实如此。太多的程序员把所有的东西都公开了..然后就一团糟了。

标签: entity-framework ef-code-first code-first


【解决方案1】:

只要将您的类公开给 EF 的 DbContext 派生类位于同一个程序集中,您就应该可以。我不会碰巧以这种方式设计我的应用程序,因为我更喜欢分离。但是上下文应该能够构建模型,并且如果它们在同一个程序集中,它应该能够与类交互(例如执行查询、保存更改等),因为它可以访问内部类。尽管我们在 Code First 书中尝试并写了各种奇怪的东西,但我从未碰巧尝试过这种特殊场景。

【讨论】:

  • 感谢您的回答。好像没有人有过类似的经历。我试过你的建议,没有任何区别。
  • 貌似不行……可能实体的实例不是由 DbContext 派生类创建的,而是在 EF 的核心执行引擎中创建的……
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-01
  • 2014-05-23
  • 1970-01-01
  • 2012-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多