我有一个EntityDataSource,命令文本不包含在其中.
查询如下: –
SELECT User.LastName, User.Suffix
FROM [User]
WHERE [User].UserId not in (select [Contractors].UserId from Contractors)
这导致以下错误: –
The element type 'Edm.Guid' and the CollectionType 'Transient.collection[Transient.rowtype[(UserId ,Edm.Guid(Nullable=True,DefaultValue=))](Nullable=True,DefaultValue=)]' are not compatible. The IN expression only supports entity, primitive, and reference types.
任何想法如何解决这个问题?
最佳答案 这是因为你不能使用带有Guid(唯一标识符)类型的IN clausule.您的UserId具有唯一标识符类型,因此请使用其他方法检查没有IN的情况,例如临时表等.
尝试使用表的左连接,研究有关SQL的更多信息,这是一个示例:
SELECT User.LastName, User.Suffix
FROM [User]
Left Join [Contractors] on [User].UserId = [Contractors].UserId
WHERE [Contractors].UserId IS NULL
我不确定这是否会奏效,我现在无法测试.
我确信有更好的方法来做我正在做的事情,但这就是你所犯的错误……