Yes, you can do the Guid PKs now. You can do them one of two ways... tell the business object that the PrimaryKeyIsAutoIncremented = False and set the primary key within the SetDefaultValues() event handler to Guid.NewGuid() or you can set the PrimaryKeyIsAutoIncremented = True and use stored procedures with an output parameter as the new GUID that was assigned. Like this:CREATE PROCEDURE MyTableInsert
@pk UniqueIdentifier OUTPUT,
@field1 VarChar(50)
AS
SELECT @pk = NEWID()
INSERT INTO MyTable (pk, field1) VALUES (@pk, @field1)
You have to manually assign the GUID since if you just put NEWID() in as the default value of the column, there's no way to get it back out.
As for the ROWGUID field that is used for replication, if it is also the primary key, then you're done, but if it's a separate column, then you'll want to set the field in the SetDefaultValues() event handler to DbNull.Value so that the server can assign it; you won't have to worry about retrieving since it's only used for replication.