<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://skysigal.com/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://skysigal.com/feed.php">
        <title>Notes it:ad:code_first:entities</title>
        <description></description>
        <link>https://skysigal.com/</link>
        <image rdf:resource="https://skysigal.com/lib/tpl/bootstrap3/images/favicon.ico" />
       <dc:date>2026-04-16T22:12:31+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/code_first/entities/autogeneration?rev=1699069151&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/code_first/entities/classes?rev=1699138496&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/code_first/entities/complextypes?rev=1699069153&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/code_first/entities/identities?rev=1699069154&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/code_first/entities/properties?rev=1699138498&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://skysigal.com/lib/tpl/bootstrap3/images/favicon.ico">
        <title>Notes</title>
        <link>https://skysigal.com/</link>
        <url>https://skysigal.com/lib/tpl/bootstrap3/images/favicon.ico</url>
    </image>
    <item rdf:about="https://skysigal.com/it/ad/code_first/entities/autogeneration?rev=1699069151&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:39:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:EF/CodeFirst/Entities/AutoGeneration</title>
        <link>https://skysigal.com/it/ad/code_first/entities/autogeneration?rev=1699069151&amp;do=diff</link>
        <description>IT:AD:EF/CodeFirst/Entities/AutoGeneration

	* (UP)
entities index



Proccess

	* Install the latest version of the Entity Framework Power Tool
	* Restart Visual Studio.
	* On you  assembly:
	* right click and select Entity Framework/Customize Reverse Engineer Templates</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/code_first/entities/classes?rev=1699138496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T22:54:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:Code First:Entities:Classes</title>
        <link>https://skysigal.com/it/ad/code_first/entities/classes?rev=1699138496&amp;do=diff</link>
        <description>IT:AD:Code First:Entities:Classes

	* (UP)
entities index



CheckList: Classes Design

	* MUST: Parameter less constructor
	* MUST: Not be sealed or abstract
	* MUST: Have a PK.
	*  Convention: Named Id or &lt;Entity&gt;Id
		*  DataAnnotation: [Key()] (see )
		*  FluentAPI:</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/code_first/entities/complextypes?rev=1699069153&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:39:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:EF/CodeFirst/Entities/ComplexTypes</title>
        <link>https://skysigal.com/it/ad/code_first/entities/complextypes?rev=1699069153&amp;do=diff</link>
        <description>IT:AD:EF/CodeFirst/Entities/ComplexTypes

	* (UP)
entities index


	* See:
		* 


Complex Types are simply a way of Logically grouping db fields together so that they are easier to manipulate. 

An example would be:
public class User  
{  
  public int Id { get; set; }  

  public string First {get; set; }
  ...

  //Refer to a ComplexType (not same as a 1-1 relationship)
  //MUST: Cannot be marked Virtual to lazy load it:
  public Address Address { get; set; }  

  public User {
     //MUST: Wi…</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/code_first/entities/identities?rev=1699069154&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:39:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:Code First/Entities/Identities</title>
        <link>https://skysigal.com/it/ad/code_first/entities/identities?rev=1699069154&amp;do=diff</link>
        <description>IT:AD:Code First/Entities/Identities

	* (UP)
entities index



When we are talking about one database, an int is always the fastest Identifier to choose as they are created in order, therefore appended to the end (compared to a Guid which has to jump all over the table looking to insert it).</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/code_first/entities/properties?rev=1699138498&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T22:54:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:Code First:Entities:Properties</title>
        <link>https://skysigal.com/it/ad/code_first/entities/properties?rev=1699138498&amp;do=diff</link>
        <description>IT:AD:Code First:Entities:Properties

	* (UP)
entities index



CheckList: Class Properties

	* MUST: mark Scalar Properties as virtual to enable improved Change Tracking (by going from Snapshot CT to Proxy POCO Change Tracking, which is based on IPOCO/IEntityWithChangeTracker</description>
    </item>
</rdf:RDF>
