利回り - ... ParentCategoryIdは「トップレベル」カテゴリのnullにすることができます注意をNULL可能GUIDは、私は、階層カテゴリとサブカテゴリのセットを定義し、単純なSQLテーブル持っている意外な結果
CREATE TABLE [dbo].[Category](
[CategoryId] [uniqueidentifier] NOT NULL,
[ParentCategoryId] [uniqueidentifier] NULL,
[Name] [nvarchar](50) NOT NULL
)
名前とParentCategoryIdで特定のカテゴリを見つけるLinq式を作成すると、Guidを設定すると正しい結果が得られません。ヌルに変数:これは、同じ結果が得られない
Guid? parentCategoryId = null;
var category = dc.Categories
.Where(c => (
(c.Name == "Fred") &&
(c.ParentCategoryId == parentCategoryId)
));
:
var category = dc.Categories
.Where(c => (
(c.Name == "Fred") &&
(c.ParentCategoryId == null)
));
私はウェブ上で見つけることができるものから、他の人がこの問題を抱えているが、私はすることができていません問題を解決するためのきれいな回避策を見つけてください。
アイデアをいただければ幸いです。ありがとう。
追加情報 ここでは、最初にGuidのLINQ生成SQL文はありますか?その後、nullパラメータと簡単なヌルパラメータに:あなたが見ることができるように
-- With Guid? null parameter : return an empty record set
DECLARE @p0 NVarChar(1000) SET @p0 = 'Fred'
DECLARE @p1 UniqueIdentifier SET @p1 = null
SELECT [t0].[CategoryId], [t0].[ParentCategoryId], [t0].[Name], [t0].[Timestamp]
FROM [dbo].[cad_ScoCategory] AS [t0]
WHERE ([t0].[Name] = @p0) AND ([t0].[ParentCategoryId] = @p1)
-- With null parameter - returns a single (correct) record
DECLARE @p0 NVarChar(1000) SET @p0 = 'Fred'
SELECT [t0].[CategoryId], [t0].[ParentCategoryId], [t0].[Name], [t0].[Timestamp]
FROM [dbo].[cad_ScoCategory] AS [t0]
WHERE ([t0].[Name] = @p0) AND ([t0].[ParentCategoryId] IS NULL)
、最初のオプションは、第2の方法はParentCategoryIdがNULL ISチェックとしてのヌルparaemeterでParentCategoryIdを比較 - 正しい
1から休憩開始する場合は0です。 –
SQL select文の生成を表示できますか? –
異なる結果は何ですか? – Hogan