{"action":"created","comment":{"url":"https://api.github.com/repos/dotnet/machinelearning/pulls/comments/206667079","pull_request_review_id":142124804,"id":206667079,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNjY2NzA3OQ==","diff_hunk":"@@ -103,11 +103,11 @@ private TypedCursorable(IHostEnvironment env, IDataView data, bool ignoreMissing\n                     throw _host.Except(\"Column '{0}' not found in the data view\", col.ColumnName);\n                 }\n                 var realColType = _data.Schema.GetColumnType(colIndex);\n-                if (!IsCompatibleType(realColType, col.FieldInfo))\n+                if (!IsCompatibleType(realColType, col.MemberInfo))\n                 {\n                     throw _host.Except(\n-                        \"Can't bind the IDataView column '{0}' of type '{1}' to field '{2}' of type '{3}'.\",\n-                        col.ColumnName, realColType, col.FieldInfo.Name, col.FieldInfo.FieldType.FullName);\n+                        \"Can't bind the IDataView column '{0}' of type '{1}' to field or property '{2}' of type '{3}'.\",\n+                        col.ColumnName, realColType, col.MemberInfo.Name, col.OutputType.FullName);","path":"src/Microsoft.ML.Api/TypedCursor.cs","position":11,"original_position":11,"commit_id":"382906e3d0d4938d0173090f058cad71c86dac5e","original_commit_id":"382906e3d0d4938d0173090f058cad71c86dac5e","user":{"login":"Ivanidzo4ka","id":1523833,"node_id":"MDQ6VXNlcjE1MjM4MzM=","avatar_url":"https://avatars3.githubusercontent.com/u/1523833?v=4","gravatar_id":"","url":"https://api.github.com/users/Ivanidzo4ka","html_url":"https://github.com/Ivanidzo4ka","followers_url":"https://api.github.com/users/Ivanidzo4ka/followers","following_url":"https://api.github.com/users/Ivanidzo4ka/following{/other_user}","gists_url":"https://api.github.com/users/Ivanidzo4ka/gists{/gist_id}","starred_url":"https://api.github.com/users/Ivanidzo4ka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ivanidzo4ka/subscriptions","organizations_url":"https://api.github.com/users/Ivanidzo4ka/orgs","repos_url":"https://api.github.com/users/Ivanidzo4ka/repos","events_url":"https://api.github.com/users/Ivanidzo4ka/events{/privacy}","received_events_url":"https://api.github.com/users/Ivanidzo4ka/received_events","type":"User","site_admin":false},"body":">OutputType [](start = 78, length = 10)\r\n\r\nThis look something suspicious. In case of IsComputed = true you will return something else rather than FieldType or PropertyType.","created_at":"2018-07-31T20:10:22Z","updated_at":"2018-07-31T20:10:22Z","html_url":"https://github.com/dotnet/machinelearning/pull/616#discussion_r206667079","pull_request_url":"https://api.github.com/repos/dotnet/machinelearning/pulls/616","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/dotnet/machinelearning/pulls/comments/206667079"},"html":{"href":"https://github.com/dotnet/machinelearning/pull/616#discussion_r206667079"},"pull_request":{"href":"https://api.github.com/repos/dotnet/machinelearning/pulls/616"}}},"pull_request":{"url":"https://api.github.com/repos/dotnet/machinelearning/pulls/616","id":205110073,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA1MTEwMDcz","html_url":"https://github.com/dotnet/machinelearning/pull/616","diff_url":"https://github.com/dotnet/machinelearning/pull/616.diff","patch_url":"https://github.com/dotnet/machinelearning/pull/616.patch","issue_url":"https://api.github.com/repos/dotnet/machinelearning/issues/616","number":616,"state":"open","locked":false,"title":"[WIP] Allow use of property-based row classes in ML.NET","user":{"login":"dsyme","id":7204669,"node_id":"MDQ6VXNlcjcyMDQ2Njk=","avatar_url":"https://avatars1.githubusercontent.com/u/7204669?v=4","gravatar_id":"","url":"https://api.github.com/users/dsyme","html_url":"https://github.com/dsyme","followers_url":"https://api.github.com/users/dsyme/followers","following_url":"https://api.github.com/users/dsyme/following{/other_user}","gists_url":"https://api.github.com/users/dsyme/gists{/gist_id}","starred_url":"https://api.github.com/users/dsyme/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dsyme/subscriptions","organizations_url":"https://api.github.com/users/dsyme/orgs","repos_url":"https://api.github.com/users/dsyme/repos","events_url":"https://api.github.com/users/dsyme/events{/privacy}","received_events_url":"https://api.github.com/users/dsyme/received_events","type":"User","site_admin":false},"body":"This is WIP to address \r\n* https://github.com/dotnet/machinelearning/issues/254 - \"Support ColumnAttribute on properties and not just fields\" and \r\n* https://github.com/dotnet/machinelearning/issues/180 - \"F# Records not compatible with ML .NET\"\r\n\r\nIt builds on #600 and you can see the added diff between #600 and this PR [here](https://github.com/dsyme/machinelearning/compare/fs1...dsyme:fs2?expand=1#diff-fe2d4189320f83b77c7f4f5dca8bb5d8R132)\r\n\r\nCopying comment from [here](https://github.com/dotnet/machinelearning/issues/254#issuecomment-409215137):\r\n\r\n> This would allow the use of [ColumnNameAttribute and friends](https://github.com/dsyme/machinelearning/compare/fs1...dsyme:fs2?expand=1#diff-46f68725db753df8e54db621da51265cR17) on both public fields (as today) and public properties that have getters/setters.\r\n> \r\n> I've tested that allows an F# record definition to be successfully used, e.g. [this test](https://github.com/dsyme/machinelearning/compare/fs1...dsyme:fs2?expand=1#diff-fe2d4189320f83b77c7f4f5dca8bb5d8R132) now passes in that branch.  It would also allow C# classes that just use attributed public get/set properties to be used, many tests for that pattern would need to be added (e.g. covering the vector, channel and other cases)\r\n> \r\n> It would be a change in spec because existing C# classes that use public fields _plus_ some additional get/set properties may now have their get/set properties considered part of the schema, when they weren't before.  I suppose this may mean the user has to add some NoColumn attributes on to these properties.  \r\n> \r\n> We could theoretically adjust the spec to be \"if there are non-zero public fields, then use public fields.  Otherwise, see if there are public get/set properties\", but right now I've used the rule \"combine the public fields and public get/set properties\" as that seems more natural and allows gradual transition of field-based types to property-based types.\r\n> \r\n> I believe this would address @terrajobst's concerns about the use of public fields, at least in the core schema model.  There are other uses of GetFields() and field-reflection in the component model/catalog parameterization system which I haven't attempted to address.\r\n\r\n","created_at":"2018-07-31T13:20:14Z","updated_at":"2018-07-31T20:10:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a7481d91e84919db24bb44c0c5e314f29a62237b","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/dotnet/machinelearning/pulls/616/commits","review_comments_url":"https://api.github.com/repos/dotnet/machinelearning/pulls/616/comments","review_comment_url":"https://api.github.com/repos/dotnet/machinelearning/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotnet/machinelearning/issues/616/comments","statuses_url":"https://api.github.com/repos/dotnet/machinelearning/statuses/382906e3d0d4938d0173090f058cad71c86dac5e","head":{"label":"dsyme:fs2","ref":"fs2","sha":"382906e3d0d4938d0173090f058cad71c86dac5e","user":{"login":"dsyme","id":7204669,"node_id":"MDQ6VXNlcjcyMDQ2Njk=","avatar_url":"https://avatars1.githubusercontent.com/u/7204669?v=4","gravatar_id":"","url":"https://api.github.com/users/dsyme","html_url":"https://github.com/dsyme","followers_url":"https://api.github.com/users/dsyme/followers","following_url":"https://api.github.com/users/dsyme/following{/other_user}","gists_url":"https://api.github.com/users/dsyme/gists{/gist_id}","starred_url":"https://api.github.com/users/dsyme/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dsyme/subscriptions","organizations_url":"https://api.github.com/users/dsyme/orgs","repos_url":"https://api.github.com/users/dsyme/repos","events_url":"https://api.github.com/users/dsyme/events{/privacy}","received_events_url":"https://api.github.com/users/dsyme/received_events","type":"User","site_admin":false},"repo":{"id":141122312,"node_id":"MDEwOlJlcG9zaXRvcnkxNDExMjIzMTI=","name":"machinelearning","full_name":"dsyme/machinelearning","owner":{"login":"dsyme","id":7204669,"node_id":"MDQ6VXNlcjcyMDQ2Njk=","avatar_url":"https://avatars1.githubusercontent.com/u/7204669?v=4","gravatar_id":"","url":"https://api.github.com/users/dsyme","html_url":"https://github.com/dsyme","followers_url":"https://api.github.com/users/dsyme/followers","following_url":"https://api.github.com/users/dsyme/following{/other_user}","gists_url":"https://api.github.com/users/dsyme/gists{/gist_id}","starred_url":"https://api.github.com/users/dsyme/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dsyme/subscriptions","organizations_url":"https://api.github.com/users/dsyme/orgs","repos_url":"https://api.github.com/users/dsyme/repos","events_url":"https://api.github.com/users/dsyme/events{/privacy}","received_events_url":"https://api.github.com/users/dsyme/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dsyme/machinelearning","description":"ML.NET is an open source and cross-platform machine learning framework for .NET.","fork":true,"url":"https://api.github.com/repos/dsyme/machinelearning","forks_url":"https://api.github.com/repos/dsyme/machinelearning/forks","keys_url":"https://api.github.com/repos/dsyme/machinelearning/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dsyme/machinelearning/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dsyme/machinelearning/teams","hooks_url":"https://api.github.com/repos/dsyme/machinelearning/hooks","issue_events_url":"https://api.github.com/repos/dsyme/machinelearning/issues/events{/number}","events_url":"https://api.github.com/repos/dsyme/machinelearning/events","assignees_url":"https://api.github.com/repos/dsyme/machinelearning/assignees{/user}","branches_url":"https://api.github.com/repos/dsyme/machinelearning/branches{/branch}","tags_url":"https://api.github.com/repos/dsyme/machinelearning/tags","blobs_url":"https://api.github.com/repos/dsyme/machinelearning/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dsyme/machinelearning/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dsyme/machinelearning/git/refs{/sha}","trees_url":"https://api.github.com/repos/dsyme/machinelearning/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dsyme/machinelearning/statuses/{sha}","languages_url":"https://api.github.com/repos/dsyme/machinelearning/languages","stargazers_url":"https://api.github.com/repos/dsyme/machinelearning/stargazers","contributors_url":"https://api.github.com/repos/dsyme/machinelearning/contributors","subscribers_url":"https://api.github.com/repos/dsyme/machinelearning/subscribers","subscription_url":"https://api.github.com/repos/dsyme/machinelearning/subscription","commits_url":"https://api.github.com/repos/dsyme/machinelearning/commits{/sha}","git_commits_url":"https://api.github.com/repos/dsyme/machinelearning/git/commits{/sha}","comments_url":"https://api.github.com/repos/dsyme/machinelearning/comments{/number}","issue_comment_url":"https://api.github.com/repos/dsyme/machinelearning/issues/comments{/number}","contents_url":"https://api.github.com/repos/dsyme/machinelearning/contents/{+path}","compare_url":"https://api.github.com/repos/dsyme/machinelearning/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dsyme/machinelearning/merges","archive_url":"https://api.github.com/repos/dsyme/machinelearning/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dsyme/machinelearning/downloads","issues_url":"https://api.github.com/repos/dsyme/machinelearning/issues{/number}","pulls_url":"https://api.github.com/repos/dsyme/machinelearning/pulls{/number}","milestones_url":"https://api.github.com/repos/dsyme/machinelearning/milestones{/number}","notifications_url":"https://api.github.com/repos/dsyme/machinelearning/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dsyme/machinelearning/labels{/name}","releases_url":"https://api.github.com/repos/dsyme/machinelearning/releases{/id}","deployments_url":"https://api.github.com/repos/dsyme/machinelearning/deployments","created_at":"2018-07-16T10:14:34Z","updated_at":"2018-07-16T10:14:42Z","pushed_at":"2018-07-31T13:52:36Z","git_url":"git://github.com/dsyme/machinelearning.git","ssh_url":"git@github.com:dsyme/machinelearning.git","clone_url":"https://github.com/dsyme/machinelearning.git","svn_url":"https://github.com/dsyme/machinelearning","homepage":"https://dot.net/ml","size":20132,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dotnet:master","ref":"master","sha":"b727d10c02a8f093b72ff98a02e2d63f1051d39a","user":{"login":"dotnet","id":9141961,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkxNDE5NjE=","avatar_url":"https://avatars0.githubusercontent.com/u/9141961?v=4","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"repo":{"id":132021166,"node_id":"MDEwOlJlcG9zaXRvcnkxMzIwMjExNjY=","name":"machinelearning","full_name":"dotnet/machinelearning","owner":{"login":"dotnet","id":9141961,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkxNDE5NjE=","avatar_url":"https://avatars0.githubusercontent.com/u/9141961?v=4","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dotnet/machinelearning","description":"ML.NET is an open source and cross-platform machine learning framework for .NET.","fork":false,"url":"https://api.github.com/repos/dotnet/machinelearning","forks_url":"https://api.github.com/repos/dotnet/machinelearning/forks","keys_url":"https://api.github.com/repos/dotnet/machinelearning/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotnet/machinelearning/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotnet/machinelearning/teams","hooks_url":"https://api.github.com/repos/dotnet/machinelearning/hooks","issue_events_url":"https://api.github.com/repos/dotnet/machinelearning/issues/events{/number}","events_url":"https://api.github.com/repos/dotnet/machinelearning/events","assignees_url":"https://api.github.com/repos/dotnet/machinelearning/assignees{/user}","branches_url":"https://api.github.com/repos/dotnet/machinelearning/branches{/branch}","tags_url":"https://api.github.com/repos/dotnet/machinelearning/tags","blobs_url":"https://api.github.com/repos/dotnet/machinelearning/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotnet/machinelearning/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotnet/machinelearning/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotnet/machinelearning/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotnet/machinelearning/statuses/{sha}","languages_url":"https://api.github.com/repos/dotnet/machinelearning/languages","stargazers_url":"https://api.github.com/repos/dotnet/machinelearning/stargazers","contributors_url":"https://api.github.com/repos/dotnet/machinelearning/contributors","subscribers_url":"https://api.github.com/repos/dotnet/machinelearning/subscribers","subscription_url":"https://api.github.com/repos/dotnet/machinelearning/subscription","commits_url":"https://api.github.com/repos/dotnet/machinelearning/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotnet/machinelearning/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotnet/machinelearning/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotnet/machinelearning/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotnet/machinelearning/contents/{+path}","compare_url":"https://api.github.com/repos/dotnet/machinelearning/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotnet/machinelearning/merges","archive_url":"https://api.github.com/repos/dotnet/machinelearning/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotnet/machinelearning/downloads","issues_url":"https://api.github.com/repos/dotnet/machinelearning/issues{/number}","pulls_url":"https://api.github.com/repos/dotnet/machinelearning/pulls{/number}","milestones_url":"https://api.github.com/repos/dotnet/machinelearning/milestones{/number}","notifications_url":"https://api.github.com/repos/dotnet/machinelearning/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotnet/machinelearning/labels{/name}","releases_url":"https://api.github.com/repos/dotnet/machinelearning/releases{/id}","deployments_url":"https://api.github.com/repos/dotnet/machinelearning/deployments","created_at":"2018-05-03T16:20:42Z","updated_at":"2018-07-31T18:39:55Z","pushed_at":"2018-07-31T20:01:41Z","git_url":"git://github.com/dotnet/machinelearning.git","ssh_url":"git@github.com:dotnet/machinelearning.git","clone_url":"https://github.com/dotnet/machinelearning.git","svn_url":"https://github.com/dotnet/machinelearning","homepage":"https://dot.net/ml","size":20896,"stargazers_count":3275,"watchers_count":3275,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":457,"mirror_url":null,"archived":false,"open_issues_count":207,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":457,"open_issues":207,"watchers":3275,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotnet/machinelearning/pulls/616"},"html":{"href":"https://github.com/dotnet/machinelearning/pull/616"},"issue":{"href":"https://api.github.com/repos/dotnet/machinelearning/issues/616"},"comments":{"href":"https://api.github.com/repos/dotnet/machinelearning/issues/616/comments"},"review_comments":{"href":"https://api.github.com/repos/dotnet/machinelearning/pulls/616/comments"},"review_comment":{"href":"https://api.github.com/repos/dotnet/machinelearning/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotnet/machinelearning/pulls/616/commits"},"statuses":{"href":"https://api.github.com/repos/dotnet/machinelearning/statuses/382906e3d0d4938d0173090f058cad71c86dac5e"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"Ivanidzo4ka"}}