如何让所有实体访问:EDMX中的内部而不是公共?

Kor*_*tak 10 entities entity-framework model public internal

我希望我的实体框架模型生成具有internal访问修饰符的实体,而不是public.我在库中使用EF模型,我只想从外部访问一个类(一些控制器).

有没有简单的方法让EF模型生成使用internalmodifer代替public,包括更新时的模型重新生成?

Ger*_*old 1

这与我在类似问题上得到的答案非常相似。但在您的情况下,您想要自定义类的访问修饰符,而不是 ObjectContext。

根据 hvd 的回答进行改编:

设计者有一个选项“添加代码生成项”。如果您使用它,您将获得多种选择。我正在使用“ADO.NET 自跟踪实体生成器”,但同样的方法适用于所有这些。选择此选项会将两个模板文件(Model.tt 和 Model.Context.tt)添加到您的项目中,您可以根据需要随意修改它们。对于您所询问的修改,您将在第 37 行或附近找到实体类的代码生成。更改

<#=Accessibility.ForType(entity)#> <#=code.SpaceAfter(code.AbstractOption(entity))#>部分类 ...

部分班级...

对于复杂类型,下面还有类似的行:同时删除“partial”之前的部分。

这将立即设置所有类型的访问修饰符,包括未来的类型。要自定义单个类型,您最好使用模型浏览器。

您还必须将模型本身的属性“实体容器访问”设置为内部,否则将生成具有不兼容访问修饰符的成员。