| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <#@ template hostspecific="true" language="C#" #>
- <#@ include file="EF.Utility.CS.ttinclude" #><#@
- output extension=".cs" #><#
- var efHost = (EfTextTemplateHost)Host;
- var code = new CodeGenerationTools(this);
- #>
- using System;
- using System.Collections.Generic;
- using Newtonsoft.Json;
- namespace <#= code.EscapeNamespace(efHost.Namespace) #>
- {
- [Serializable]
- public partial class <#= efHost.EntityType.Name #>
- {
- <#
- var collectionNavigations = efHost.EntityType.NavigationProperties.Where(
- np => np.DeclaringType == efHost.EntityType
- && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many);
- // Add a ctor to initialize any collections
- if (collectionNavigations.Any())
- {
- #>
- public <#= code.Escape(efHost.EntityType) #>()
- {
- <#
- foreach (var navProperty in collectionNavigations)
- {
- #>
- this.<#= code.Escape(navProperty) #> = new List<<#= code.Escape(navProperty.ToEndMember.GetEntityType()) #>>();
- <#
- }
- #>
- }
- <#
- }
-
- foreach (var property in efHost.EntityType.Properties)
- {
- var typeUsage = code.Escape(property.TypeUsage);
- // Fix-up spatial types for EF6
- if (efHost.EntityFrameworkVersion >= new Version(6, 0)
- && typeUsage.StartsWith("System.Data.Spatial."))
- {
- typeUsage = typeUsage.Replace(
- "System.Data.Spatial.",
- "System.Data.Entity.Spatial.");
- }
- #>
- <#= Accessibility.ForProperty(property) #> <#= typeUsage #> <#= code.Escape(property) #> { get; set; }
- <#
- }
- foreach (var navProperty in efHost.EntityType.NavigationProperties.Where(np => np.DeclaringType == efHost.EntityType))
- {
- if (navProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many)
- {
- #>
- [JsonIgnore()]
- public virtual ICollection<<#= code.Escape(navProperty.ToEndMember.GetEntityType()) #>> <#= code.Escape(navProperty) #> { get; set; }
- <#
- }
- else
- {
- #>
- [JsonIgnore()]
- public virtual <#= code.Escape(navProperty.ToEndMember.GetEntityType()) #> <#= code.Escape(navProperty) #> { get; set; }
- <#
- }
- }
- #>
- }
- }
|