![](/img/trans.png)
[英]SQL Server 2008 Sync - How to reinsert conflicting pk rows with new primary key
[英]How to create a primary key on a column in SQL Server or how to import a view without PK in EDM designer?
我的SQL服务器上有一个链接服务器,该服务器链接到Active Directory。 我创建了一个视图,该视图从AD中选择有关用户的相关信息。 该视图没有主键。 现在,我想构建一个OData服务,该服务将从浏览器和我的应用程序查询视图。 我为此使用.NET WCF数据服务(.NET 4.0,VS2010)。 但是,当我创建edmx文件并尝试导入视图时,不会导入该视图,因为它上面没有PRIMARY KEY。 我无法在视图上创建主键(在MS SQL Server上无法创建),但是我需要它能够在我的实体数据模型设计器中导入视图。 我能做什么? 我该如何运作?
我要补充一点,因为我的视图没有架构绑定(数据来自Active Directory),所以我无法创建索引视图。
尝试解决一两个小时的问题,决定在SO上发布并在几分钟之内解决问题,真是有趣。
我发现了这个: https : //stackoverflow.com/a/2715299/989256
我们遇到了同样的问题,这就是解决方案:要强制实体框架将列用作主键,请使用ISNULL。 要强制实体框架不要将列用作主键,请使用NULLIF。 一种简单的应用方法是将视图的select语句包装在另一个select中。 例:
SELECT
ISNULL(MyPrimaryID,-999) MyPrimaryID,
NULLIF(AnotherProperty,'') AnotherProperty
FROM ( ... ) AS temp
效果还不错,但是我有点担心性能。 该视图加载速度似乎慢得多...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.