Click here to Skip to main content
15,892,575 members
Articles / Web Development / HTML

Code First Approach using Entity Framework 4.1, Inversion of Control, Unity Framework, Repository & Unit of Work Pattern and MVC3 Razor View

Rate me:
Please Sign up or sign in to vote.
4.90/5 (76 votes)
26 Nov 2014CPOL16 min read 230.7K   15.3K   187  
My effort in this article was to put some light on building a generic multilayered architecture using Entity Framework 4.1 and MVC3 razor view engine.
  • SourceCode.zip
    • CodeFirstData
    • CodeFirstEntities
      • _ReSharper.CodeFirstEntities
        • AspFileDataCache.dat
        • BuildScriptCache
          • .crc
          • .version
          • 1
            • 79c652.dat
        • CompletionStatistics
          • Statistics.dat
        • ConditionalNames
          • .crc
          • .version
          • 4
            • 3fddd5b7.dat
        • JavaScriptCache
          • .crc
          • .version
          • 1
            • 545da353.dat
            • 61d4b734.dat
          • 2
            • 3245028f.dat
          • 3
            • 23ce8008.dat
          • 4
            • 3fddd5b7.dat
          • 5
            • 71112476.dat
          • 7
            • 3bd63.dat
          • 8
            • 69c2350.dat
        • JSTest
          • .crc
          • .version
          • 7
            • 337c7624.dat
        • ModuleIds.xml
        • MVC
          • .crc
          • .version
          • 7
            • 337c7624.dat
        • NamedArguments
          • .crc
          • .version
          • 4
            • 3fddd5b7.dat
        • PersistenIdIndex.bin
        • RecentItems
          • RecentFiles.dat
        • Resources
          • .crc
          • .version
        • SymbolCache.bin
        • TagPrefixes
          • .crc
          • .version
          • 1
            • 79c652.dat
        • TodoItems
          • .crc
          • .version
          • 4
            • 3fddd5b7.dat
        • WebSymbols
          • .crc
          • .version
          • 1
            • 79c652.dat
        • WordIndex
          • .crc
          • .version
          • 3
            • 23ce8008.dat
            • 525a768.dat
          • 4
            • 3fddd5b7.dat
          • 7
            • 278dea1d.dat
        • XmlIndex
          • Accessibility.xml
            • 59F683E5.bin
            • 97C5C74B.bin
          • EntityFramework.xml
            • 6E572F9F.bin
            • EF3E2830.bin
          • Microsoft.Build.Framework.4.0.0.0.Nullness.Generated.xml
            • 91BD6FD3.bin
          • Microsoft.Build.Framework.xml
            • 5B4D04B5.bin
          • Microsoft.Build.Tasks.v4.0.4.0.0.0.Nullness.Generated.xml
            • AB623953.bin
          • Microsoft.Build.Tasks.v4.0.xml
            • 390E8A25.bin
          • Microsoft.Build.Utilities.v4.0.4.0.0.0.Nullness.Generated.xml
            • 07D57913.bin
          • Microsoft.Build.Utilities.v4.0.xml
            • 1A2D939D.bin
          • Microsoft.CSharp.4.0.0.0.Nullness.Generated.xml
            • 10F25633.bin
          • Microsoft.CSharp.xml
            • 4DDA1CCA.bin
          • Microsoft.JScript.10.0.0.0.Nullness.Generated.xml
            • 47DE7F86.bin
          • Microsoft.JScript.xml
            • F74F3354.bin
          • Microsoft.Practices.Unity.Configuration.xml
            • 5AA51D65.bin
            • 70886068.bin
          • Microsoft.Practices.Unity.Interception.Configuration.xml
            • 209059E5.bin
            • 4E009688.bin
          • Microsoft.Practices.Unity.Interception.xml
            • 59AC76BB.bin
            • E837E3D6.bin
          • Microsoft.Practices.Unity.xml
            • ABA3AEF6.bin
            • CC291A3B.bin
          • Microsoft.Transactions.Bridge.3.0.0.0.Nullness.Generated.xml
            • C7619374.bin
          • Microsoft.Transactions.Bridge.4.0.0.0.Nullness.Generated.xml
            • CB57B7D3.bin
          • Microsoft.Transactions.Bridge.xml
            • 196DF037.bin
          • Microsoft.VisualBasic.10.0.0.0.Contracts.xml
            • 905D2256.bin
          • Microsoft.VisualBasic.10.0.0.0.Nullness.Generated.xml
            • 34A06846.bin
          • Microsoft.VisualBasic.10.0.0.0.Pure.xml
            • 90D5FE85.bin
          • Microsoft.VisualBasic.Activities.Compiler.10.0.0.0.Nullness.Generated.xml
            • 276128C6.bin
          • Microsoft.VisualBasic.xml
            • EE79FEBF.bin
          • Microsoft.VisualC.xml
            • 3732B488.bin
            • 90D3ABE6.bin
          • mscorlib.2.0.0.0.Contracts.xml
            • 2C2FE705.bin
          • mscorlib.2.0.0.0.Interfaces.Nullness.Generated.xml
            • C418674D.bin
          • mscorlib.2.0.0.0.Nullness.Generated.xml
            • E2B19D75.bin
          • mscorlib.2.0.0.0.Pure.xml
            • B22E2EB6.bin
          • mscorlib.4.0.0.0.Contracts.xml
            • 0DED0883.bin
          • mscorlib.4.0.0.0.Interfaces.Nullness.Generated.xml
            • 620DC5CB.bin
          • mscorlib.4.0.0.0.Nullness.Generated.xml
            • 772ECBB3.bin
          • mscorlib.4.0.0.0.Pure.xml
            • 6572C670.bin
          • mscorlib.I18n.xml
            • 366D6FC8.bin
          • mscorlib.Nullness.Manual.xml
            • A029C282.bin
          • mscorlib.ValueFlow.xml
            • 4E59B0BF.bin
          • mscorlib.xml
            • 05998BE8.bin
            • 1D362982.bin
            • 743ADB6C.bin
          • SMDiagnostics.3.0.0.0.Nullness.Generated.xml
            • 8AA32174.bin
          • SMDiagnostics.4.0.0.0.Nullness.Generated.xml
            • 8E9945D3.bin
          • System.2.0.0.0.Contracts.xml
            • 929BDA85.bin
          • System.2.0.0.0.Nullness.Generated.xml
            • BE8780F5.bin
          • System.2.0.0.0.Pure.xml
            • 8CF3F236.bin
          • System.4.0.0.0.Contracts.xml
            • 7458FC03.bin
          • System.4.0.0.0.Nullness.Generated.xml
            • 5304AF33.bin
          • System.4.0.0.0.Pure.xml
            • 403889F0.bin
          • System.Activities.4.0.0.0.Nullness.Generated.xml
            • 679C2793.bin
          • System.Activities.DurableInstancing.4.0.0.0.Nullness.Generated.xml
            • 5B8A77D3.bin
          • System.Activities.DurableInstancing.xml
            • 04D57C40.bin
          • System.Activities.xml
            • 33E2C3AB.bin
          • System.ComponentModel.DataAnnotations.3.5.0.0.Nullness.Generated.xml
            • B5111ED1.bin
          • System.ComponentModel.DataAnnotations.4.0.0.0.Nullness.Generated.xml
            • EB11BC93.bin
          • System.ComponentModel.DataAnnotations.I18n.xml
            • E1E89968.bin
          • System.ComponentModel.DataAnnotations.xml
            • 13D34939.bin
            • B9A8C76A.bin
          • System.Configuration.2.0.0.0.Contracts.xml
            • 93875E45.bin
          • System.Configuration.2.0.0.0.Nullness.Generated.xml
            • FB5BB8B5.bin
          • System.Configuration.2.0.0.0.Pure.xml
            • 07AB3D76.bin
          • System.Configuration.4.0.0.0.Contracts.xml
            • 8AA99CC3.bin
          • System.Configuration.4.0.0.0.Nullness.Generated.xml
            • 5C04A9F3.bin
          • System.Configuration.4.0.0.0.Pure.xml
            • A30FD330.bin
          • System.Configuration.Install.2.0.0.0.Contracts.xml
            • BF2FCAE5.bin
          • System.Configuration.Install.2.0.0.0.Nullness.Generated.xml
            • 03AF4D15.bin
          • System.Configuration.Install.4.0.0.0.Contracts.xml
            • F6158D63.bin
          • System.Configuration.Install.4.0.0.0.Nullness.Generated.xml
            • 28353B53.bin
          • System.Configuration.Install.xml
            • 3B89BCB1.bin
            • 7FB1C71F.bin
          • System.Configuration.xml
            • 092A1070.bin
            • 2AA4525E.bin
          • System.Core.3.5.0.0.Contracts.xml
            • 1D445C21.bin
          • System.Core.3.5.0.0.Nullness.Generated.xml
            • 585EA4D1.bin
          • System.Core.3.5.0.0.Pure.xml
            • C497F7D2.bin
          • System.Core.4.0.0.0.Contracts.xml
            • 9A69C6A3.bin
          • System.Core.4.0.0.0.Nullness.Generated.xml
            • 8E5F4293.bin
          • System.Core.4.0.0.0.Pure.xml
            • D7464B10.bin
          • System.Core.LinqTunnel.xml
            • 63F26974.bin
          • System.Core.Nullness.Manual.xml
            • 31BDD0E2.bin
          • System.Core.xml
            • 11686E5B.bin
            • 944CB108.bin
          • System.Data.2.0.0.0.Contracts.xml
            • C6AE46A5.bin
          • System.Data.2.0.0.0.Nullness.Generated.xml
            • A9765ED5.bin
          • System.Data.2.0.0.0.Pure.xml
            • A61761D6.bin
          • System.Data.4.0.0.0.Contracts.xml
            • 68A7E423.bin
          • System.Data.4.0.0.0.Nullness.Generated.xml
            • 7A169013.bin
          • System.Data.4.0.0.0.Pure.xml
            • 595BF890.bin
          • System.Data.DataSetExtensions.4.0.0.0.Nullness.Generated.xml
            • DB866913.bin
          • System.Data.DataSetExtensions.I18n.xml
            • B16CE5E8.bin
          • System.Data.DataSetExtensions.xml
            • 4A8BA0A6.bin
          • System.Data.Entity.3.5.0.0.Nullness.Generated.xml
            • FAE5A5D1.bin
          • System.Data.Entity.4.0.0.0.Nullness.Generated.xml
            • 30E64393.bin
          • System.Data.Entity.xml
            • 9398E105.bin
            • EB528336.bin
          • System.Data.I18n.xml
            • 51BDCCE8.bin
          • System.Data.Linq.3.5.0.0.Nullness.Generated.xml
            • 3938B6B1.bin
          • System.Data.Linq.4.0.0.0.Nullness.Generated.xml
            • 0D37D4F3.bin
          • System.Data.Linq.Attributes.xml
            • B77F6C29.bin
          • System.Data.Linq.I18n.xml
            • A25BD988.bin
          • System.Data.Linq.xml
            • 34869A17.bin
            • B30DAF64.bin
          • System.Data.OracleClient.2.0.0.0.Nullness.Generated.xml
            • 7754BD95.bin
          • System.Data.OracleClient.4.0.0.0.Nullness.Generated.xml
            • 9BDAABD3.bin
          • System.Data.OracleClient.xml
            • 27DDCE31.bin
            • 9427B35F.bin
          • System.Data.Services.Client.3.5.0.0.Nullness.Generated.xml
            • 2ADFF3D1.bin
          • System.Data.Services.Client.4.0.0.0.Nullness.Generated.xml
            • 60E09193.bin
          • System.Data.Services.Client.xml
            • 0B993FC7.bin
            • 3CEE3C54.bin
          • System.Data.Services.Design.3.5.0.0.Nullness.Generated.xml
            • C417FF51.bin
          • System.Data.Services.Design.4.0.0.0.Nullness.Generated.xml
            • FA189D13.bin
          • System.Data.Services.Design.xml
            • CC0FCF1F.bin
            • E842CE0C.bin
          • System.Data.SqlXml.2.0.0.0.Nullness.Generated.xml
            • 956E4495.bin
          • System.Data.SqlXml.4.0.0.0.Nullness.Generated.xml
            • B9F432D3.bin
          • System.Data.SqlXml.xml
            • 48CF6F29.bin
            • 8761C3C7.bin
          • System.Data.xml
            • 7BF6DA70.bin
            • CFFAA41E.bin
          • System.Deployment.2.0.0.0.Nullness.Generated.xml
            • E0B9A455.bin
          • System.Deployment.4.0.0.0.Nullness.Generated.xml
            • B159D593.bin
          • System.Deployment.xml
            • 2C6EE0D7.bin
            • CC017739.bin
          • System.Design.2.0.0.0.Nullness.Generated.xml
            • 73443E95.bin
          • System.Design.4.0.0.0.Nullness.Generated.xml
            • 97CA2CD3.bin
          • System.Design.xml
            • 66D504B2.bin
            • 94F2BB5C.bin
          • System.DirectoryServices.2.0.0.0.Nullness.Generated.xml
            • 78AE4555.bin
          • System.DirectoryServices.4.0.0.0.Nullness.Generated.xml
            • 494E7693.bin
          • System.DirectoryServices.Protocols.2.0.0.0.Nullness.Generated.xml
            • 6EFB7AB5.bin
          • System.DirectoryServices.Protocols.4.0.0.0.Nullness.Generated.xml
            • CFA46BF3.bin
          • System.DirectoryServices.Protocols.xml
            • 072F5742.bin
            • A1B5E32C.bin
          • System.DirectoryServices.xml
            • 14397267.bin
            • 796A6F49.bin
          • System.Drawing.2.0.0.0.Contracts.xml
            • AF2FFA85.bin
          • System.Drawing.2.0.0.0.Nullness.Generated.xml
            • 93BFA0F5.bin
          • System.Drawing.2.0.0.0.Pure.xml
            • 54741236.bin
          • System.Drawing.4.0.0.0.Contracts.xml
            • 90ED1C03.bin
          • System.Drawing.4.0.0.0.Nullness.Generated.xml
            • 283CCF33.bin
          • System.Drawing.4.0.0.0.Pure.xml
            • 07B8A9F0.bin
          • System.Drawing.Design.2.0.0.0.Nullness.Generated.xml
            • CB20AA15.bin
          • System.Drawing.Design.4.0.0.0.Nullness.Generated.xml
            • EFA69853.bin
          • System.Drawing.Design.xml
            • 7000BF52.bin
            • E232227C.bin
          • System.Drawing.xml
            • 2F425360.bin
            • 4AE71CCE.bin
          • System.Dynamic.4.0.0.0.Nullness.Generated.xml
            • 8CC52453.bin
          • System.EnterpriseServices.2.0.0.0.Nullness.Generated.xml
            • F38E6055.bin
          • System.EnterpriseServices.4.0.0.0.Nullness.Generated.xml
            • C42E9193.bin
          • System.EnterpriseServices.xml
            • 484CBB5B.bin
            • 5D2D9EF5.bin
          • System.I18n.xml
            • E767B348.bin
          • System.IdentityModel.3.0.0.0.Nullness.Generated.xml
            • 8D398F74.bin
          • System.IdentityModel.4.0.0.0.Nullness.Generated.xml
            • 912FB3D3.bin
          • System.IdentityModel.Selectors.3.0.0.0.Nullness.Generated.xml
            • 896B6974.bin
          • System.IdentityModel.Selectors.4.0.0.0.Nullness.Generated.xml
            • 8D618DD3.bin
          • System.IdentityModel.Selectors.xml
            • 17C23871.bin
            • 8E1D2D30.bin
          • System.IdentityModel.xml
            • 673E4F98.bin
            • FCECB5D9.bin
          • System.Management.4.0.0.0.Nullness.Generated.xml
            • 3E6A0593.bin
          • System.Management.xml
            • 8DDFA253.bin
          • System.Messaging.2.0.0.0.Nullness.Generated.xml
            • 2C9BE975.bin
          • System.Messaging.4.0.0.0.Nullness.Generated.xml
            • C11917B3.bin
          • System.Messaging.xml
            • 4EE26F6E.bin
            • 94C73840.bin
          • System.Nullness.Manual.xml
            • AC02D602.bin
          • System.Numerics.4.0.0.0.Nullness.Generated.xml
            • 0D729213.bin
          • System.Numerics.xml
            • F65D6778.bin
          • System.Runtime.Caching.4.0.0.0.Nullness.Generated.xml
            • 8BB7FA53.bin
          • System.Runtime.Caching.xml
            • 6E34C19B.bin
          • System.Runtime.DurableInstancing.4.0.0.0.Nullness.Generated.xml
            • 94C6B993.bin
          • System.Runtime.Remoting.2.0.0.0.Nullness.Generated.xml
            • 357DCF15.bin
          • System.Runtime.Remoting.4.0.0.0.Nullness.Generated.xml
            • 5A03BD53.bin
          • System.Runtime.Remoting.xml
            • 99D48EF3.bin
            • F93434DD.bin
          • System.Runtime.Serialization.3.0.0.0.Nullness.Generated.xml
            • 65D50AD4.bin
          • System.Runtime.Serialization.4.0.0.0.Nullness.Generated.xml
            • 4774B3B3.bin
          • System.Runtime.Serialization.Attributes.xml
            • E749FA69.bin
          • System.Runtime.Serialization.Formatters.Soap.2.0.0.0.Contracts.xml
            • 6A729305.bin
          • System.Runtime.Serialization.Formatters.Soap.2.0.0.0.Nullness.Generated.xml
            • 64B5C975.bin
          • System.Runtime.Serialization.Formatters.Soap.4.0.0.0.Contracts.xml
            • 4C2FB483.bin
          • System.Runtime.Serialization.Formatters.Soap.4.0.0.0.Nullness.Generated.xml
            • F932F7B3.bin
          • System.Runtime.Serialization.Formatters.Soap.xml
            • AC344D82.bin
            • FD932A2C.bin
          • System.Runtime.Serialization.xml
            • 014E8BDC.bin
            • F0B1191D.bin
          • System.Security.2.0.0.0.Contracts.xml
            • 7E44A425.bin
          • System.Security.2.0.0.0.Nullness.Generated.xml
            • 25CDEC55.bin
          • System.Security.2.0.0.0.Pure.xml
            • 895D4F56.bin
          • System.Security.4.0.0.0.Contracts.xml
            • 203E41A3.bin
          • System.Security.4.0.0.0.Nullness.Generated.xml
            • F66E1D93.bin
          • System.Security.4.0.0.0.Pure.xml
            • 3CA1E610.bin
          • System.Security.xml
            • 07099898.bin
            • 55841E76.bin
          • System.ServiceModel.3.0.0.0.Nullness.Generated.xml
            • F3859074.bin
          • System.ServiceModel.4.0.0.0.Nullness.Generated.xml
            • F77BB4D3.bin
          • System.ServiceModel.Activation.4.0.0.0.Nullness.Generated.xml
            • 98DDA2B3.bin
          • System.ServiceModel.Activation.xml
            • B91280C8.bin
          • System.ServiceModel.Activities.4.0.0.0.Nullness.Generated.xml
            • 7FF57E53.bin
          • System.ServiceModel.Activities.xml
            • AB91D397.bin
          • System.ServiceModel.Web.3.5.0.0.Nullness.Generated.xml
            • B061E091.bin
          • System.ServiceModel.Web.4.0.0.0.Nullness.Generated.xml
            • 3A483B53.bin
          • System.ServiceModel.Web.xml
            • 4B4A489F.bin
            • AFCF614C.bin
          • System.ServiceModel.xml
            • 263DB992.bin
            • BE8B8173.bin
          • System.ServiceProcess.2.0.0.0.Nullness.Generated.xml
            • 64FAEAD5.bin
          • System.ServiceProcess.4.0.0.0.Nullness.Generated.xml
            • 359B1C13.bin
          • System.ServiceProcess.xml
            • 2335E116.bin
            • B46FDC38.bin
          • System.Transactions.2.0.0.0.Nullness.Generated.xml
            • 68818E55.bin
          • System.Transactions.4.0.0.0.Nullness.Generated.xml
            • 3921BF93.bin
          • System.Transactions.xml
            • 7D351899.bin
            • A0E212F7.bin
          • System.Web.2.0.0.0.Contracts.xml
            • BAEFDF05.bin
          • System.Web.2.0.0.0.Nullness.Generated.xml
            • B4E89575.bin
          • System.Web.2.0.0.0.Pure.xml
            • 931326B6.bin
          • System.Web.4.0.0.0.Contracts.xml
            • 9CAD0083.bin
          • System.Web.4.0.0.0.Nullness.Generated.xml
            • 4965C3B3.bin
          • System.Web.4.0.0.0.Pure.xml
            • 4657BE70.bin
          • System.Web.Abstractions.3.5.0.0.Nullness.Generated.xml
            • 06EACF11.bin
          • System.Web.Abstractions.xml
            • A00BB8E5.bin
            • CCA4F1B6.bin
          • System.Web.ApplicationServices.4.0.0.0.Nullness.Generated.xml
            • 3969B1B3.bin
          • System.Web.ApplicationServices.xml
            • 331D36EA.bin
          • System.Web.Attributes.xml
            • C91B0A69.bin
          • System.Web.DataVisualization.4.0.0.0.Nullness.Generated.xml
            • 01959F33.bin
          • System.Web.DataVisualization.xml
            • 8800EDF4.bin
          • System.Web.DynamicData.4.0.0.0.Nullness.Generated.xml
            • EB87AD13.bin
          • System.Web.DynamicData.xml
            • DC2CFBFB.bin
          • System.Web.Entity.4.0.0.0.Nullness.Generated.xml
            • F4A1E313.bin
          • System.Web.Entity.xml
            • A8FBC385.bin
          • System.Web.Extensions.3.5.0.0.Nullness.Generated.xml
            • E9EAAC91.bin
          • System.Web.Extensions.4.0.0.0.Nullness.Generated.xml
            • 73D10753.bin
          • System.Web.Extensions.xml
            • 1594D3F4.bin
            • F1886C67.bin
          • System.Web.Helpers.xml
            • 0E774D98.bin
          • System.Web.I18n.xml
            • DDDA67C8.bin
          • System.Web.Mvc.Annotations.xml
            • B5228072.bin
          • System.Web.Mvc.Attributes.xml
            • A9871169.bin
          • System.Web.Mvc.I18n.xml
            • 3B8D2EC8.bin
          • System.Web.Mvc.Nullness.Manual.xml
            • 66942182.bin
          • System.Web.Mvc.xml
            • 7767440B.bin
            • C90B51CA.bin
          • System.Web.RegularExpressions.xml
            • B6E517C5.bin
            • CD932B2B.bin
          • System.Web.Routing.3.5.0.0.Nullness.Generated.xml
            • 71E5DC71.bin
          • System.Web.Routing.xml
            • 54275CA2.bin
            • D75C6BD1.bin
          • System.Web.Services.2.0.0.0.Nullness.Generated.xml
            • 5FB93F55.bin
          • System.Web.Services.4.0.0.0.Nullness.Generated.xml
            • 30597093.bin
          • System.Web.Services.Attributes.xml
            • 336EB089.bin
          • System.Web.Services.xml
            • 057956D0.bin
            • 357F9EBE.bin
          • System.Web.WebPages.Annotations.xml
            • E6592D12.bin
          • System.Web.WebPages.Attributes.xml
            • 2AF04289.bin
          • System.Web.WebPages.xml
            • 0190AFDD.bin
          • System.Web.xml
            • 03E9D35E.bin
            • C4EB8CF0.bin
          • System.Windows.Forms.2.0.0.0.Contracts.xml
            • 28E48E05.bin
          • System.Windows.Forms.2.0.0.0.Nullness.Generated.xml
            • 4E922475.bin
          • System.Windows.Forms.2.0.0.0.Pure.xml
            • 4A9E75B6.bin
          • System.Windows.Forms.4.0.0.0.Contracts.xml
            • 0AA1AF83.bin
          • System.Windows.Forms.4.0.0.0.Nullness.Generated.xml
            • E30F52B3.bin
          • System.Windows.Forms.4.0.0.0.Pure.xml
            • FDE30D70.bin
          • System.Windows.Forms.I18n.xml
            • 4286B6C8.bin
          • System.Windows.Forms.Manual.xml
            • 4EEF7F3C.bin
          • System.Windows.Forms.xml
            • 628A07B4.bin
            • 82C195DA.bin
          • System.Workflow.Activities.4.0.0.0.Nullness.Generated.xml
            • 95C13873.bin
          • System.Workflow.Activities.xml
            • FB17DE96.bin
          • System.Workflow.ComponentModel.4.0.0.0.Nullness.Generated.xml
            • 43C7AB93.bin
          • System.Workflow.ComponentModel.xml
            • 8A0F9E9D.bin
          • System.Workflow.Runtime.4.0.0.0.Nullness.Generated.xml
            • 5F2A0F93.bin
          • System.Workflow.Runtime.xml
            • 32431EC1.bin
          • System.WorkflowServices.4.0.0.0.Nullness.Generated.xml
            • DC2BE493.bin
          • System.WorkflowServices.xml
            • 8E65A1DD.bin
          • System.Xaml.4.0.0.0.Nullness.Generated.xml
            • A8037753.bin
          • System.Xaml.Hosting.4.0.0.0.Nullness.Generated.xml
            • 66496553.bin
          • System.Xaml.Hosting.xml
            • F261D856.bin
          • System.Xaml.xml
            • C4D1BFD8.bin
          • System.Xml.2.0.0.0.Contracts.xml
            • 1CF390E5.bin
          • System.Xml.2.0.0.0.Nullness.Generated.xml
            • B911D315.bin
          • System.Xml.2.0.0.0.Pure.xml
            • BEB7E496.bin
          • System.Xml.4.0.0.0.Contracts.xml
            • 53D95363.bin
          • System.Xml.4.0.0.0.Nullness.Generated.xml
            • DD97C153.bin
          • System.Xml.4.0.0.0.Pure.xml
            • 5A1C7B50.bin
          • System.Xml.Attributes.xml
            • 09EED2C9.bin
          • System.Xml.I18n.xml
            • 8B551FA8.bin
          • System.Xml.Linq.3.5.0.0.Contracts.xml
            • 927AA021.bin
          • System.Xml.Linq.3.5.0.0.Nullness.Generated.xml
            • D8E168D1.bin
          • System.Xml.Linq.3.5.0.0.Pure.xml
            • 89D3BBD2.bin
          • System.Xml.Linq.4.0.0.0.Contracts.xml
            • 0FA00AA3.bin
          • System.Xml.Linq.4.0.0.0.Nullness.Generated.xml
            • 0EE20693.bin
          • System.Xml.Linq.4.0.0.0.Pure.xml
            • 9C820F10.bin
          • System.Xml.Linq.I18n.xml
            • A5756368.bin
          • System.Xml.Linq.xml
            • AD7A27CD.bin
            • BA52F0DE.bin
          • System.Xml.xml
            • 3B538D57.bin
            • 48B5EA79.bin
          • System.xml
            • 74BB9F68.bin
            • C3B3EEEE.bin
            • CA128980.bin
          • WindowsBase.3.0.0.0.Nullness.Generated.xml
            • 04FEF8F4.bin
          • WindowsBase.3.0.0.0.Pure.xml
            • BC4535F7.bin
          • WindowsBase.xml
            • 3DC9B440.bin
      • CodeFirstEntities.sln
      • CodeFirstEntities.suo
      • CodeFirstEntities
      • packages
    • CodeFirstServices
    • Dlls
    • MvcPortal
  • SourceCode-noexe.zip
//----------------------------------------------------------
// Copyright (C) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------
// MicrosoftMvcValidation.js

Type.registerNamespace('Sys.Mvc');Sys.Mvc.$create_Validation=function(){return {};}
Sys.Mvc.$create_JsonValidationField=function(){return {};}
Sys.Mvc.$create_JsonValidationOptions=function(){return {};}
Sys.Mvc.$create_JsonValidationRule=function(){return {};}
Sys.Mvc.$create_ValidationContext=function(){return {};}
Sys.Mvc.NumberValidator=function(){}
Sys.Mvc.NumberValidator.create=function(rule){return Function.createDelegate(new Sys.Mvc.NumberValidator(),new Sys.Mvc.NumberValidator().validate);}
Sys.Mvc.NumberValidator.prototype={validate:function(value,context){if(Sys.Mvc._ValidationUtil.$1(value)){return true;}var $0=Number.parseLocale(value);return (!isNaN($0));}}
Sys.Mvc.FormContext=function(formElement,validationSummaryElement){this.$5=[];this.fields=new Array(0);this.$9=formElement;this.$7=validationSummaryElement;formElement['__MVC_FormValidation'] = this;if(validationSummaryElement){var $0=validationSummaryElement.getElementsByTagName('ul');if($0.length>0){this.$8=$0[0];}}this.$3=Function.createDelegate(this,this.$D);this.$4=Function.createDelegate(this,this.$E);}
Sys.Mvc.FormContext._Application_Load=function(){var $0=window.mvcClientValidationMetadata;if($0){while($0.length>0){var $1=$0.pop();Sys.Mvc.FormContext.$12($1);}}}
Sys.Mvc.FormContext.$F=function($p0,$p1){var $0=[];var $1=document.getElementsByName($p1);for(var $2=0;$2<$1.length;$2++){var $3=$1[$2];if(Sys.Mvc.FormContext.$10($p0,$3)){Array.add($0,$3);}}return $0;}
Sys.Mvc.FormContext.getValidationForForm=function(formElement){return formElement['__MVC_FormValidation'];}
Sys.Mvc.FormContext.$10=function($p0,$p1){while($p1){if($p0===$p1){return true;}$p1=$p1.parentNode;}return false;}
Sys.Mvc.FormContext.$12=function($p0){var $0=$get($p0.FormId);var $1=(!Sys.Mvc._ValidationUtil.$1($p0.ValidationSummaryId))?$get($p0.ValidationSummaryId):null;var $2=new Sys.Mvc.FormContext($0,$1);$2.enableDynamicValidation();$2.replaceValidationSummary=$p0.ReplaceValidationSummary;for(var $4=0;$4<$p0.Fields.length;$4++){var $5=$p0.Fields[$4];var $6=Sys.Mvc.FormContext.$F($0,$5.FieldName);var $7=(!Sys.Mvc._ValidationUtil.$1($5.ValidationMessageId))?$get($5.ValidationMessageId):null;var $8=new Sys.Mvc.FieldContext($2);Array.addRange($8.elements,$6);$8.validationMessageElement=$7;$8.replaceValidationMessageContents=$5.ReplaceValidationMessageContents;for(var $9=0;$9<$5.ValidationRules.length;$9++){var $A=$5.ValidationRules[$9];var $B=Sys.Mvc.ValidatorRegistry.getValidator($A);if($B){var $C=Sys.Mvc.$create_Validation();$C.fieldErrorMessage=$A.ErrorMessage;$C.validator=$B;Array.add($8.validations,$C);}}$8.enableDynamicValidation();Array.add($2.fields,$8);}var $3=$0.validationCallbacks;if(!$3){$3=[];$0.validationCallbacks = $3;}$3.push(Function.createDelegate(null,function(){
return Sys.Mvc._ValidationUtil.$0($2.validate('submit'));}));return $2;}
Sys.Mvc.FormContext.prototype={$3:null,$4:null,$6:null,$7:null,$8:null,$9:null,replaceValidationSummary:false,addError:function(message){this.addErrors([message]);},addErrors:function(messages){if(!Sys.Mvc._ValidationUtil.$0(messages)){Array.addRange(this.$5,messages);this.$11();}},clearErrors:function(){Array.clear(this.$5);this.$11();},$A:function(){if(this.$7){if(this.$8){Sys.Mvc._ValidationUtil.$3(this.$8);for(var $0=0;$0<this.$5.length;$0++){var $1=document.createElement('li');Sys.Mvc._ValidationUtil.$4($1,this.$5[$0]);this.$8.appendChild($1);}}Sys.UI.DomElement.removeCssClass(this.$7,'validation-summary-valid');Sys.UI.DomElement.addCssClass(this.$7,'validation-summary-errors');}},$B:function(){var $0=this.$7;if($0){var $1=this.$8;if($1){$1.innerHTML='';}Sys.UI.DomElement.removeCssClass($0,'validation-summary-errors');Sys.UI.DomElement.addCssClass($0,'validation-summary-valid');}},enableDynamicValidation:function(){Sys.UI.DomEvent.addHandler(this.$9,'click',this.$3);Sys.UI.DomEvent.addHandler(this.$9,'submit',this.$4);},$C:function($p0){if($p0.disabled){return null;}var $0=$p0.tagName.toUpperCase();var $1=$p0;if($0==='INPUT'){var $2=$1.type;if($2==='submit'||$2==='image'){return $1;}}else if(($0==='BUTTON')&&($1.type==='submit')){return $1;}return null;},$D:function($p0){this.$6=this.$C($p0.target);},$E:function($p0){var $0=$p0.target;var $1=this.$6;if($1&&$1.disableValidation){return;}var $2=this.validate('submit');if(!Sys.Mvc._ValidationUtil.$0($2)){$p0.preventDefault();}},$11:function(){if(!this.$5.length){this.$B();}else{this.$A();}},validate:function(eventName){var $0=this.fields;var $1=[];for(var $2=0;$2<$0.length;$2++){var $3=$0[$2];if(!$3.elements[0].disabled){var $4=$3.validate(eventName);if($4){Array.addRange($1,$4);}}}if(this.replaceValidationSummary){this.clearErrors();this.addErrors($1);}return $1;}}
Sys.Mvc.FieldContext=function(formContext){this.$A=[];this.elements=new Array(0);this.validations=new Array(0);this.formContext=formContext;this.$6=Function.createDelegate(this,this.$D);this.$7=Function.createDelegate(this,this.$E);this.$8=Function.createDelegate(this,this.$F);this.$9=Function.createDelegate(this,this.$10);}
Sys.Mvc.FieldContext.prototype={$6:null,$7:null,$8:null,$9:null,defaultErrorMessage:null,formContext:null,replaceValidationMessageContents:false,validationMessageElement:null,addError:function(message){this.addErrors([message]);},addErrors:function(messages){if(!Sys.Mvc._ValidationUtil.$0(messages)){Array.addRange(this.$A,messages);this.$14();}},clearErrors:function(){Array.clear(this.$A);this.$14();},$B:function(){var $0=this.validationMessageElement;if($0){if(this.replaceValidationMessageContents){Sys.Mvc._ValidationUtil.$4($0,this.$A[0]);}Sys.UI.DomElement.removeCssClass($0,'field-validation-valid');Sys.UI.DomElement.addCssClass($0,'field-validation-error');}var $1=this.elements;for(var $2=0;$2<$1.length;$2++){var $3=$1[$2];Sys.UI.DomElement.removeCssClass($3,'input-validation-valid');Sys.UI.DomElement.addCssClass($3,'input-validation-error');}},$C:function(){var $0=this.validationMessageElement;if($0){if(this.replaceValidationMessageContents){Sys.Mvc._ValidationUtil.$4($0,'');}Sys.UI.DomElement.removeCssClass($0,'field-validation-error');Sys.UI.DomElement.addCssClass($0,'field-validation-valid');}var $1=this.elements;for(var $2=0;$2<$1.length;$2++){var $3=$1[$2];Sys.UI.DomElement.removeCssClass($3,'input-validation-error');Sys.UI.DomElement.addCssClass($3,'input-validation-valid');}},$D:function($p0){if($p0.target['__MVC_HasTextChanged']||$p0.target['__MVC_HasValidationFired']){this.validate('blur');}},$E:function($p0){$p0.target['__MVC_HasTextChanged'] = true;},$F:function($p0){$p0.target['__MVC_HasTextChanged'] = true;if($p0.target['__MVC_HasValidationFired']){this.validate('input');}},$10:function($p0){if($p0.rawEvent.propertyName==='value'){$p0.target['__MVC_HasTextChanged'] = true;if($p0.target['__MVC_HasValidationFired']){this.validate('input');}}},enableDynamicValidation:function(){var $0=this.elements;for(var $1=0;$1<$0.length;$1++){var $2=$0[$1];if(Sys.Mvc._ValidationUtil.$2($2,'onpropertychange')){var $3=document.documentMode;if($3&&$3>=8){Sys.UI.DomEvent.addHandler($2,'propertychange',this.$9);}}else{Sys.UI.DomEvent.addHandler($2,'input',this.$8);}Sys.UI.DomEvent.addHandler($2,'change',this.$7);Sys.UI.DomEvent.addHandler($2,'blur',this.$6);}},$11:function($p0,$p1){var $0=$p1||this.defaultErrorMessage;if(Boolean.isInstanceOfType($p0)){return ($p0)?null:$0;}if(String.isInstanceOfType($p0)){return (($p0).length)?$p0:$0;}return null;},$12:function(){var $0=this.elements;return ($0.length>0)?$0[0].value:null;},$13:function(){var $0=this.elements;for(var $1=0;$1<$0.length;$1++){var $2=$0[$1];$2['__MVC_HasValidationFired'] = true;}},$14:function(){if(!this.$A.length){this.$C();}else{this.$B();}},validate:function(eventName){var $0=this.validations;var $1=[];var $2=this.$12();for(var $3=0;$3<$0.length;$3++){var $4=$0[$3];var $5=Sys.Mvc.$create_ValidationContext();$5.eventName=eventName;$5.fieldContext=this;$5.validation=$4;var $6=$4.validator($2,$5);var $7=this.$11($6,$4.fieldErrorMessage);if(!Sys.Mvc._ValidationUtil.$1($7)){Array.add($1,$7);}}this.$13();this.clearErrors();this.addErrors($1);return $1;}}
Sys.Mvc.RangeValidator=function(minimum,maximum){this.$0=minimum;this.$1=maximum;}
Sys.Mvc.RangeValidator.create=function(rule){var $0=rule.ValidationParameters['min'];var $1=rule.ValidationParameters['max'];return Function.createDelegate(new Sys.Mvc.RangeValidator($0,$1),new Sys.Mvc.RangeValidator($0,$1).validate);}
Sys.Mvc.RangeValidator.prototype={$0:null,$1:null,validate:function(value,context){if(Sys.Mvc._ValidationUtil.$1(value)){return true;}var $0=Number.parseLocale(value);return (!isNaN($0)&&this.$0<=$0&&$0<=this.$1);}}
Sys.Mvc.RegularExpressionValidator=function(pattern){this.$0=pattern;}
Sys.Mvc.RegularExpressionValidator.create=function(rule){var $0=rule.ValidationParameters['pattern'];return Function.createDelegate(new Sys.Mvc.RegularExpressionValidator($0),new Sys.Mvc.RegularExpressionValidator($0).validate);}
Sys.Mvc.RegularExpressionValidator.prototype={$0:null,validate:function(value,context){if(Sys.Mvc._ValidationUtil.$1(value)){return true;}var $0=new RegExp(this.$0);var $1=$0.exec(value);return (!Sys.Mvc._ValidationUtil.$0($1)&&$1[0].length===value.length);}}
Sys.Mvc.RequiredValidator=function(){}
Sys.Mvc.RequiredValidator.create=function(rule){return Function.createDelegate(new Sys.Mvc.RequiredValidator(),new Sys.Mvc.RequiredValidator().validate);}
Sys.Mvc.RequiredValidator.$0=function($p0){if($p0.tagName.toUpperCase()==='INPUT'){var $0=($p0.type).toUpperCase();if($0==='RADIO'){return true;}}return false;}
Sys.Mvc.RequiredValidator.$1=function($p0){if($p0.tagName.toUpperCase()==='SELECT'){return true;}return false;}
Sys.Mvc.RequiredValidator.$2=function($p0){if($p0.tagName.toUpperCase()==='INPUT'){var $0=($p0.type).toUpperCase();switch($0){case 'TEXT':case 'PASSWORD':case 'FILE':return true;}}if($p0.tagName.toUpperCase()==='TEXTAREA'){return true;}return false;}
Sys.Mvc.RequiredValidator.$3=function($p0){for(var $0=0;$0<$p0.length;$0++){var $1=$p0[$0];if($1.checked){return true;}}return false;}
Sys.Mvc.RequiredValidator.$4=function($p0){for(var $0=0;$0<$p0.length;$0++){var $1=$p0[$0];if($1.selected){if(!Sys.Mvc._ValidationUtil.$1($1.value)){return true;}}}return false;}
Sys.Mvc.RequiredValidator.$5=function($p0){return (!Sys.Mvc._ValidationUtil.$1($p0.value));}
Sys.Mvc.RequiredValidator.prototype={validate:function(value,context){var $0=context.fieldContext.elements;if(!$0.length){return true;}var $1=$0[0];if(Sys.Mvc.RequiredValidator.$2($1)){return Sys.Mvc.RequiredValidator.$5($1);}if(Sys.Mvc.RequiredValidator.$0($1)){return Sys.Mvc.RequiredValidator.$3($0);}if(Sys.Mvc.RequiredValidator.$1($1)){return Sys.Mvc.RequiredValidator.$4(($1).options);}return true;}}
Sys.Mvc.StringLengthValidator=function(minLength,maxLength){this.$1=minLength;this.$0=maxLength;}
Sys.Mvc.StringLengthValidator.create=function(rule){var $0=(rule.ValidationParameters['min']||0);var $1=(rule.ValidationParameters['max']||Number.MAX_VALUE);return Function.createDelegate(new Sys.Mvc.StringLengthValidator($0,$1),new Sys.Mvc.StringLengthValidator($0,$1).validate);}
Sys.Mvc.StringLengthValidator.prototype={$0:0,$1:0,validate:function(value,context){if(Sys.Mvc._ValidationUtil.$1(value)){return true;}return (this.$1<=value.length&&value.length<=this.$0);}}
Sys.Mvc._ValidationUtil=function(){}
Sys.Mvc._ValidationUtil.$0=function($p0){return (!$p0||!$p0.length);}
Sys.Mvc._ValidationUtil.$1=function($p0){return (!$p0||!$p0.length);}
Sys.Mvc._ValidationUtil.$2=function($p0,$p1){return ($p1 in $p0);}
Sys.Mvc._ValidationUtil.$3=function($p0){while($p0.firstChild){$p0.removeChild($p0.firstChild);}}
Sys.Mvc._ValidationUtil.$4=function($p0,$p1){var $0=document.createTextNode($p1);Sys.Mvc._ValidationUtil.$3($p0);$p0.appendChild($0);}
Sys.Mvc.ValidatorRegistry=function(){}
Sys.Mvc.ValidatorRegistry.getValidator=function(rule){var $0=Sys.Mvc.ValidatorRegistry.validators[rule.ValidationType];return ($0)?$0(rule):null;}
Sys.Mvc.ValidatorRegistry.$0=function(){return {required:Function.createDelegate(null,Sys.Mvc.RequiredValidator.create),length:Function.createDelegate(null,Sys.Mvc.StringLengthValidator.create),regex:Function.createDelegate(null,Sys.Mvc.RegularExpressionValidator.create),range:Function.createDelegate(null,Sys.Mvc.RangeValidator.create),number:Function.createDelegate(null,Sys.Mvc.NumberValidator.create)};}
Sys.Mvc.NumberValidator.registerClass('Sys.Mvc.NumberValidator');Sys.Mvc.FormContext.registerClass('Sys.Mvc.FormContext');Sys.Mvc.FieldContext.registerClass('Sys.Mvc.FieldContext');Sys.Mvc.RangeValidator.registerClass('Sys.Mvc.RangeValidator');Sys.Mvc.RegularExpressionValidator.registerClass('Sys.Mvc.RegularExpressionValidator');Sys.Mvc.RequiredValidator.registerClass('Sys.Mvc.RequiredValidator');Sys.Mvc.StringLengthValidator.registerClass('Sys.Mvc.StringLengthValidator');Sys.Mvc._ValidationUtil.registerClass('Sys.Mvc._ValidationUtil');Sys.Mvc.ValidatorRegistry.registerClass('Sys.Mvc.ValidatorRegistry');Sys.Mvc.ValidatorRegistry.validators=Sys.Mvc.ValidatorRegistry.$0();
// ---- Do not remove this footer ----
// Generated using Script# v0.5.0.0 (http://projects.nikhilk.net)
// -----------------------------------
Sys.Application.add_load(function(){Sys.Application.remove_load(arguments.callee);Sys.Mvc.FormContext._Application_Load();});

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect https://codeteddy.com/
India India
Akhil Mittal is two times Microsoft MVP (Most Valuable Professional) firstly awarded in 2016 and continued in 2017 in Visual Studio and Technologies category, C# Corner MVP since 2013, Code Project MVP since 2014, a blogger, author and likes to write/read technical articles, blogs, and books. Akhil is a technical architect and loves to work on complex business problems and cutting-edge technologies. He has an experience of around 15 years in developing, designing, and architecting enterprises level applications primarily in Microsoft Technologies. He has diverse experience in working on cutting-edge technologies that include Microsoft Stack, AI, Machine Learning, and Cloud computing. Akhil is an MCP (Microsoft Certified Professional) in Web Applications and Dot Net Framework.
Visit Akhil Mittal’s personal blog CodeTeddy (CodeTeddy ) for some good and informative articles. Following are some tech certifications that Akhil cleared,
• AZ-304: Microsoft Azure Architect Design.
• AZ-303: Microsoft Azure Architect Technologies.
• AZ-900: Microsoft Azure Fundamentals.
• Microsoft MCTS (70-528) Certified Programmer.
• Microsoft MCTS (70-536) Certified Programmer.
• Microsoft MCTS (70-515) Certified Programmer.

LinkedIn: https://www.linkedin.com/in/akhilmittal/
This is a Collaborative Group

780 members

Comments and Discussions