有没有一种简单的方法可以在调试模式下将 ObjectContext 公开,在发布模式下将其设为内部?
使用 Linqpad 连接到 ObjectContext 以进行快速测试和查询非常方便,因此出于开发目的,我希望它是公开的。但是我不想考虑将同样的便利部署给一些聪明的客户时的后果。
有没有一种简单的方法可以在调试模式下将 ObjectContext 公开,在发布模式下将其设为内部?
使用 Linqpad 连接到 ObjectContext 以进行快速测试和查询非常方便,因此出于开发目的,我希望它是公开的。但是我不想考虑将同样的便利部署给一些聪明的客户时的后果。
正如评论中提到的,这可能没有任何实际用途,但是:
#if DEBUG
public
#endif
class YourContext : ObjectContext
{
...
}
在处理ObjectContext
从 .edmx 文件生成的文件时,您需要自定义 C# 文件的生成方式。默认是不可定制的,但设计者有一个选项“添加代码生成项”。如果你使用它,你会得到几个选项。我正在使用“ADO.NET 自跟踪实体生成器”,但同样的方式适用于所有这些。选择此选项会将两个模板文件(Model.tt 和 Model.Context.tt)添加到您的项目中,您可以随意修改它们。对于您要询问的修改,您可以<#=Accessibility.ForType(container)#> partial class
在Model.Context.tt
文件中找到。您可以更新它,使其显示为
#if DEBUG
<#=Accessibility.ForType(container)#>
#endif
partial class
# if(DEBUG)
public ObjectContext _context;
# else
internal ObjectContext _context;
#endif