I use SQL Server 2008 and Entity Framework for an app I work on.
I've set primary keys on all tables in SQL Server, since EF requires it, but I have a problem with one view. Since it doesn't have primary key, I've used ROW_NUMBER() function to get unique row identifiers. I've expected for that column to be defined as NOT NULL, so I could use it as primary key in EF, but instead, the column is nullable.
Here is my view:
CREATE VIEW [dbo].[vw_Action]
AS
SELECT *, ROW_NUMBER() OVER(ORDER BY ActionDate DESC) AS RowID
FROM
(
SELECT User1ID AS UserID, NULL AS FriendID, Object1ID, Object2ID, ActionType, ActionDate
FROM vw_ActionBase
WHERE ActionType = 1
GROUP BY User1ID, Object1ID, Object2ID, ActionType, ActionDate
UNION
SELECT User1ID AS UserID, NULL AS FriendID, Object1ID, Object2ID, ActionType, ActionDate
FROM vw_ActionBase
WHERE ActionType = 2
GROUP BY User1ID, Object1ID, Object2ID, ActionType, ActionDate
UNION
SELECT User1ID AS UserID, NULL AS FriendID, Object1ID, Object2ID, ActionType, ActionDate
FROM vw_ActionBase
WHERE ActionType = 3
GROUP BY User1ID, Object1ID, Object2ID, ActionType, Object1ID, ActionDate
)x
So, my question is how to set ROWID column as NOT NULL, so I could use it as primary key in EF.
Thanks in advance!