<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:43:07 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[CSHARP-2644] Add a convention for storing an _id declared as string in a POCO as ObjectId in the database</title>
                <link>https://jira.mongodb.org/browse/CSHARP-2644</link>
                <project id="10041" key="CSHARP">C# Driver</project>
                    <description>&lt;p&gt;Some applications want to keep their POCO classes free of any dependency on C# driver classes. That includes the _id field which typically is an ObjectId.&lt;/p&gt;

&lt;p&gt;One viable approach is to declare the _id as type string, and convert from ObjectId to string when deserializing and from string back to ObjectId when serializing.&lt;/p&gt;

&lt;p&gt;This is currently possible using attributes to annotate the POCO, but that defeats the goal of keeping the POCOs free of any dependency on C# driver classes.&lt;/p&gt;

&lt;p&gt;This ticket is to add support for a convention-only approach to mapping _id fields between string in the application and ObjectId in the database.&lt;/p&gt;

&lt;p&gt;There is an existing convention called `StringObjectIdIdGeneratorConvention` that is related to this goal, but only addresses a subset of this goal. What this convention does is add an appropriate IdGenerator to the IdMemberMap if and only if the Id member is a string that is already configured to be stored as an ObjectId in the database. But that requires that the IdMember already be configured to be stored as an ObjectId in the database.&lt;/p&gt;

&lt;p&gt;A useful new convention would be one that simultaneously configures the string _id field to be stored as an ObjectId in the database &lt;b&gt;and&lt;/b&gt; configures the appropriate IdGenerator.&lt;/p&gt;</description>
                <environment></environment>
        <key id="809619">CSHARP-2644</key>
            <summary>Add a convention for storing an _id declared as string in a POCO as ObjectId in the database</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="13201">Fixed</resolution>
                                        <assignee username="robert@mongodb.com">Robert Stam</assignee>
                                    <reporter username="robert@mongodb.com">Robert Stam</reporter>
                        <labels>
                    </labels>
                <created>Thu, 20 Jun 2019 19:11:13 +0000</created>
                <updated>Sat, 28 Oct 2023 11:48:42 +0000</updated>
                            <resolved>Wed, 3 Jul 2019 16:47:53 +0000</resolved>
                                    <version>2.8.1</version>
                                    <fixVersion>2.9.0</fixVersion>
                                    <component>Serialization</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="2311396" author="xgen-internal-githook" created="Wed, 3 Jul 2019 16:47:32 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;rstam&apos;, &apos;username&apos;: &apos;rstam&apos;, &apos;email&apos;: &apos;robert@robertstam.org&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CSHARP-2644&quot; title=&quot;Add a convention for storing an _id declared as string in a POCO as ObjectId in the database&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CSHARP-2644&quot;&gt;&lt;del&gt;CSHARP-2644&lt;/del&gt;&lt;/a&gt;: Code review changes.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/commit/16ba84a88792c695d3135a3ec7a687e0a0716b5a&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-csharp-driver/commit/16ba84a88792c695d3135a3ec7a687e0a0716b5a&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2311395" author="xgen-internal-githook" created="Wed, 3 Jul 2019 16:47:30 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;nurih&apos;, &apos;username&apos;: &apos;nurih&apos;, &apos;email&apos;: &apos;1554735+nurih@users.noreply.github.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CSHARP-2644&quot; title=&quot;Add a convention for storing an _id declared as string in a POCO as ObjectId in the database&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CSHARP-2644&quot;&gt;&lt;del&gt;CSHARP-2644&lt;/del&gt;&lt;/a&gt;: Add a convention for storing an _id declared as string in a POCO as ObjectId in the database.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/commit/dca125f1987057684d09cd5f3f29123d11dadaa5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-csharp-driver/commit/dca125f1987057684d09cd5f3f29123d11dadaa5&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2293777" author="nuri@plusnconsulting.com" created="Fri, 21 Jun 2019 22:43:01 +0000"  >&lt;p&gt;Added &lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/pull/373&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;PR&lt;/a&gt; to resolve this issue:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/pull/373&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-csharp-driver/pull/373&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|huvgfb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>