{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/orleans/issues/1075","labels_url":"https://api.github.com/repos/dotnet/orleans/issues/1075/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/orleans/issues/1075/comments","events_url":"https://api.github.com/repos/dotnet/orleans/issues/1075/events","html_url":"https://github.com/dotnet/orleans/pull/1075","id":118828340,"number":1075,"title":"IStorageProvider methods parameter grainType from string to Type","user":{"login":"inadler","id":9049727,"avatar_url":"https://avatars.githubusercontent.com/u/9049727?v=3","gravatar_id":"","url":"https://api.github.com/users/inadler","html_url":"https://github.com/inadler","followers_url":"https://api.github.com/users/inadler/followers","following_url":"https://api.github.com/users/inadler/following{/other_user}","gists_url":"https://api.github.com/users/inadler/gists{/gist_id}","starred_url":"https://api.github.com/users/inadler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inadler/subscriptions","organizations_url":"https://api.github.com/users/inadler/orgs","repos_url":"https://api.github.com/users/inadler/repos","events_url":"https://api.github.com/users/inadler/events{/privacy}","received_events_url":"https://api.github.com/users/inadler/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dotnet/orleans/labels/cla-signed","name":"cla-signed","color":"207de5"},{"url":"https://api.github.com/repos/dotnet/orleans/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"jason-bragg","id":10675494,"avatar_url":"https://avatars.githubusercontent.com/u/10675494?v=3","gravatar_id":"","url":"https://api.github.com/users/jason-bragg","html_url":"https://github.com/jason-bragg","followers_url":"https://api.github.com/users/jason-bragg/followers","following_url":"https://api.github.com/users/jason-bragg/following{/other_user}","gists_url":"https://api.github.com/users/jason-bragg/gists{/gist_id}","starred_url":"https://api.github.com/users/jason-bragg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jason-bragg/subscriptions","organizations_url":"https://api.github.com/users/jason-bragg/orgs","repos_url":"https://api.github.com/users/jason-bragg/repos","events_url":"https://api.github.com/users/jason-bragg/events{/privacy}","received_events_url":"https://api.github.com/users/jason-bragg/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/dotnet/orleans/milestones/10","html_url":"https://github.com/dotnet/orleans/milestones/1.2.0","labels_url":"https://api.github.com/repos/dotnet/orleans/milestones/10/labels","id":1428780,"number":10,"title":"1.2.0","description":"","creator":{"login":"sergeybykov","id":8248806,"avatar_url":"https://avatars.githubusercontent.com/u/8248806?v=3","gravatar_id":"","url":"https://api.github.com/users/sergeybykov","html_url":"https://github.com/sergeybykov","followers_url":"https://api.github.com/users/sergeybykov/followers","following_url":"https://api.github.com/users/sergeybykov/following{/other_user}","gists_url":"https://api.github.com/users/sergeybykov/gists{/gist_id}","starred_url":"https://api.github.com/users/sergeybykov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sergeybykov/subscriptions","organizations_url":"https://api.github.com/users/sergeybykov/orgs","repos_url":"https://api.github.com/users/sergeybykov/repos","events_url":"https://api.github.com/users/sergeybykov/events{/privacy}","received_events_url":"https://api.github.com/users/sergeybykov/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":3,"state":"open","created_at":"2015-11-25T07:31:55Z","updated_at":"2015-12-09T01:24:12Z","due_on":null,"closed_at":null},"comments":30,"created_at":"2015-11-25T12:40:55Z","updated_at":"2015-12-09T04:53:50Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dotnet/orleans/pulls/1075","html_url":"https://github.com/dotnet/orleans/pull/1075","diff_url":"https://github.com/dotnet/orleans/pull/1075.diff","patch_url":"https://github.com/dotnet/orleans/pull/1075.patch"},"body":"In my `IStorageProvider` implementation, I need to have the grain type in order to have the complete meta data of the given grain. I'm sure others will find this change useful. \r\nThis is part of @shayhatsor's suggestion https://github.com/dotnet/orleans/issues/1035#issuecomment-159113341"},"comment":{"url":"https://api.github.com/repos/dotnet/orleans/issues/comments/163108578","html_url":"https://github.com/dotnet/orleans/pull/1075#issuecomment-163108578","issue_url":"https://api.github.com/repos/dotnet/orleans/issues/1075","id":163108578,"user":{"login":"gabikliot","id":10171207,"avatar_url":"https://avatars.githubusercontent.com/u/10171207?v=3","gravatar_id":"","url":"https://api.github.com/users/gabikliot","html_url":"https://github.com/gabikliot","followers_url":"https://api.github.com/users/gabikliot/followers","following_url":"https://api.github.com/users/gabikliot/following{/other_user}","gists_url":"https://api.github.com/users/gabikliot/gists{/gist_id}","starred_url":"https://api.github.com/users/gabikliot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gabikliot/subscriptions","organizations_url":"https://api.github.com/users/gabikliot/orgs","repos_url":"https://api.github.com/users/gabikliot/repos","events_url":"https://api.github.com/users/gabikliot/events{/privacy}","received_events_url":"https://api.github.com/users/gabikliot/received_events","type":"User","site_admin":false},"created_at":"2015-12-09T04:53:50Z","updated_at":"2015-12-09T04:53:50Z","body":"I think we should extend `GrainReference` (maybe via `GrainExtensions`) with `IsGrainWithIntegerKey` to allow reliably  deduce the primary key. But that is unrelated to the question of grain identity available to the storage providers, which I think should not be `GrainReference`. I laid out my suggestion about it in #1123.\r\n\r\n@shayhatsor , @inadler  - for now, just to unblock you, I think you can use what ever hack you find to solve that issue: for example \"we're checking if the grain is IGrainWithIntegerKey and then call grainReference.GetPrimaryKeyLong()\" or try to get Long Key from Grain Reference and if that throws, try to get Guid. All hacks, but will unblock you, while the bigger discussion about Grain Identities and what should be espoused where is taking place.\r\n\r\nThe discussion about Grain Identities is not a light one, since it has a broad impact on the programming model, so I expect it to take some time until the decision is made.\r\n"}}