我使用Entity Framework構建了MVC 2應用程序(ASP.net 3.5),並且正在使用LINQ進行查詢。我正在嘗試部署到共享主機(1 & 1)。我知道的唯一(可能)相關限制是他們不允許非託管代碼,儘管我沒有使用任何我知道的。使用LINQ to Entities時的安全異常
這裏是我的堆棧跟蹤的最後幾行:
[SecurityException: Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
System.Data.Objects.LightweightCodeGenerator.ValidateSetterProperty(RuntimeMethodHandle setterMethodHandle, MethodInfo& setterMethodInfo, Type& realType) +28
System.Data.Common.Internal.Materialization.Translator.CreatePropertyBindings(StructuredColumnMap columnMap, Type clrType, ReadOnlyMetadataCollection`1 properties) +142
....
我沒有我的應用程序設置爲完全信任的選項。
我現在的問題是這樣的:在我的環境中是否仍然可以使用Linq-to-entities?如果不是,那麼還有哪些替代方案需要最少的返工?實體框架爲我處理驗證等事情,所以我不想放棄它。
你的非託管代碼是什麼樣的? – 2011-02-28 18:14:29
我沒有我知道的非託管代碼,但這是我的主機明確聲明我認爲可能相關的唯一限制。我用我的堆棧跟蹤的最後幾行更新我的帖子。我覺得這可能會有所幫助。 – 2011-03-01 14:28:09
我最終選擇的解決方案是使用Linq-to-SQL。它不需要與Linq-to-Entities相同的服務器權限,並且我能夠保留大部分代碼(最重要的是,通過數據註釋進行驗證)。在Linq-to-SQL中更新外鍵也更簡單。 – 2011-03-02 15:02:12