0

我有一个在客户端使用 EF4 与 SQL Server 数据库通信的项目。在那个数据库上,有一堆 SP 对记录进行操作并返回记录子集。没有什么特别重要的,关于最密集的位是生成几个字节的随机数据并用它覆盖字节数组的一部分。出于安全原因,记录必须保留在服务器上,因为数据阵列类似于私钥。

过去,我曾在 SP 中使用 ADO 进行数据库访问,但与 EF4 相比,这似乎已经过时且笨拙。现在我已经更新到 SQL Server 2012,它有 .NET4 可用于 SQLCLR 的东西,我想使用 EF4 做下一个 SP,并在将来转向使用它。

问题是,似乎还没有人这样做,我不确定它是否可能。

我知道我可以通过编写一个单独的服务器端应用程序并代表我与数据库对话来做到这一点,但这意味着客户端需要同时连接到数据库和辅助服务。更多的事情要开始工作,更多的事情会出错,并且在美学上令人不快。

我创建了一个简单的程序集,它使用 EF4 来访问几个标准表。没有添加额外的参考。将其导入 SQL Server 时,我收到找不到“System.Data.Entity”和“System.Runtime.Serialization”的错误。好的,我将它们复制到同一目录并再次导入。我收到了一些警告,说我处于未知领域,这对实验来说很好。但是后来我得到了一个缺少的程序集“smdiagnostics”。而且我在驱动器上找不到名称中包含“smdiagnostics”的任何文件,对该术语的项目进行全文搜索没有任何结果,而且我在其他地方也没有找到太多可以帮助我找到它的地方被发现。

那么有谁知道我怎样才能满足或消除对 smdiagnostics 的要求?

4

1 回答 1

0

啊。有点“doh”。将单个程序集复制到与我自己的 DLL 相同的目录不是可行的方法,只是对看到有关即使在同一目录中查看后也找不到引用的程序集的错误消息的下意识反应。

假设使用 32 位服务器,已选择您自己的数据库并已设置可信任,这将注册添加 EF4 项目所需的一切;

 CREATE ASSEMBLY [System.Data.Entity] 
 from 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Data.Entity.dll'
 with permission_set = UNSAFE;
于 2013-09-27T10:33:17.750 回答