部分信任环境中的实体框架

时间:2009-09-14 23:00:43

标签: linq entity-framework linq-to-entities partial-trust

我知道实体框架支持部分信任,我个人blogged about that

工作正常,我测试过它很好。现在,如果您下载附在我的帖子上关于主题的样本,它将不再在默认的部分信任下运行!!!

当我在故障位置使用反射器挖掘System.Data.Entity程序集时“System.Data.Objects.LightweightCodeGenerator.ValidateSetterProperty(RuntimeMethodHandle setterMethodHandle,MethodInfo& setterMethodInfo,Type& realType”)我发现它调用了RuntimeMethodHandle.Value get访问器具有以下属性的属性“[SecurityPermission(SecurityAction.LinkDemand,UnmanagedCode = true)]”

所以我进入了我的中等信任配置并添加了另一个标志“UnmanagedCode” “”

我再次测试应用程序,它工作正常。

现在这是怎么回事?!它之前正在工作,为什么现在不是不是!有些东西不见了!!! System.Data.Entity是否在VS.NET 2008 SP1的几个频繁更新期间发生了变化,最新的一个是在2009年8月发布的。因为在那个日期之前,它工作正常。

所以如果有任何人可以澄清这一点并指导我,如果我错了,或者有些东西我不知道,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

听起来你已经明确证明了Entity Framework的重大改变。我会去http://connect.microsoft.com/并报告错误。如果您可以通过在没有“UnmanagedCode = true”属性的情况下对旧程序集进行更改来确认更改,则可能会有所帮助。在错误报告中包含这两个版本。

顺便说一句,我只是看了Reflector中的RuntimeMethodHandle。 Value的get访问器返回“this.m_ptr;”并且没有属性装饰。它在mscorlib中,我的版本是2.0.0.0(我在我的开发系统上运行.NET 3.5。)

答案 1 :(得分:1)

实体框架团队中的Diego Vega PM使用以下

在Entity Framework论坛中回答了此问题
  

Hello Muhammad,

     

我们知道构建中存在问题   包含在Windows 7和Windows中   阻止实体的Server 2008 R2   在Medium中工作的框架   信任。

     

mscoree.dll和。的版本   您描述的异常消息   匹配方案。

     

我们希望之前有解决方案   主流采用Windows 7和   Windows Server 2008 R2,但在   同时建议是   继续使用Windows Server 2008或   Windows Vista用于测试和   在中部署基于EF的应用程序   中等信任。

     

希望这有帮助,迭戈