mirror of
https://github.com/farcasclaudiu/myfriendsaround.git
synced 2026-06-29 03:01:46 +03:00
Added tag tag1 for changeset 4c285537b335
This commit is contained in:
@@ -0,0 +1,178 @@
|
||||
<#
|
||||
//*********************************************************
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// This code is licensed under the Microsoft Public License.
|
||||
// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
|
||||
// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
|
||||
// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
|
||||
//
|
||||
//*********************************************************
|
||||
#>
|
||||
<#@ template language="C#" debug="false" hostspecific="true"#>
|
||||
<#@ include file="EF.Utility.CS.ttinclude"#><#@
|
||||
output extension=".cs"#><#
|
||||
|
||||
CodeGenerationTools code = new CodeGenerationTools(this);
|
||||
MetadataTools ef = new MetadataTools(this);
|
||||
MetadataLoader loader = new MetadataLoader(this);
|
||||
CodeRegion region = new CodeRegion(this);
|
||||
|
||||
string inputFile = @"MyFriendsModel.edmx";
|
||||
EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);
|
||||
string namespaceName = code.VsNamespaceSuggestion();
|
||||
|
||||
EntityContainer container = ItemCollection.GetItems<EntityContainer>().FirstOrDefault();
|
||||
if (container == null)
|
||||
{
|
||||
return "// No EntityContainer exists in the model, so no code was generated";
|
||||
}
|
||||
#>
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated from a template.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Data.Objects;
|
||||
using System.Data.EntityClient;
|
||||
using MyFriendsAround.Common.Entities;
|
||||
|
||||
<#
|
||||
if (!String.IsNullOrEmpty(namespaceName))
|
||||
{
|
||||
#>
|
||||
namespace <#=code.EscapeNamespace(namespaceName)#>
|
||||
{
|
||||
<#
|
||||
PushIndent(CodeRegion.GetIndent(1));
|
||||
}
|
||||
#>
|
||||
<#=Accessibility.ForType(container)#> partial class <#=code.Escape(container)#> : ObjectContext
|
||||
{
|
||||
public const string ConnectionString = "name=<#=container.Name#>";
|
||||
public const string ContainerName = "<#=container.Name#>";
|
||||
|
||||
#region Constructors
|
||||
|
||||
public <#=code.Escape(container)#>()
|
||||
: base(ConnectionString, ContainerName)
|
||||
{
|
||||
<#
|
||||
WriteLazyLoadingEnabled(container);
|
||||
#>
|
||||
}
|
||||
|
||||
public <#=code.Escape(container)#>(string connectionString)
|
||||
: base(connectionString, ContainerName)
|
||||
{
|
||||
<#
|
||||
WriteLazyLoadingEnabled(container);
|
||||
#>
|
||||
}
|
||||
|
||||
public <#=code.Escape(container)#>(EntityConnection connection)
|
||||
: base(connection, ContainerName)
|
||||
{
|
||||
<#
|
||||
WriteLazyLoadingEnabled(container);
|
||||
#>
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
<#
|
||||
region.Begin("ObjectSet Properties", 2);
|
||||
|
||||
foreach (EntitySet entitySet in container.BaseEntitySets.OfType<EntitySet>())
|
||||
{
|
||||
#>
|
||||
|
||||
<#=Accessibility.ForReadOnlyProperty(entitySet)#> ObjectSet<<#=code.Escape(entitySet.ElementType)#>> <#=code.Escape(entitySet)#>
|
||||
{
|
||||
get { return <#=code.FieldName(entitySet) #> ?? (<#=code.FieldName(entitySet)#> = CreateObjectSet<<#=code.Escape(entitySet.ElementType)#>>("<#=entitySet.Name#>")); }
|
||||
}
|
||||
private ObjectSet<<#=code.Escape(entitySet.ElementType)#>> <#=code.FieldName(entitySet)#>;
|
||||
<#
|
||||
}
|
||||
|
||||
region.End();
|
||||
|
||||
region.Begin("Function Imports");
|
||||
|
||||
foreach (EdmFunction edmFunction in container.FunctionImports)
|
||||
{
|
||||
var parameters = FunctionImportParameter.Create(edmFunction.Parameters, code, ef);
|
||||
string paramList = String.Join(", ", parameters.Select(p => p.FunctionParameterType + " " + p.FunctionParameterName).ToArray());
|
||||
if (edmFunction.ReturnParameter == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
string returnTypeElement = code.Escape(ef.GetElementType(edmFunction.ReturnParameter.TypeUsage));
|
||||
|
||||
#>
|
||||
<#=Accessibility.ForMethod(edmFunction)#> ObjectResult<<#=returnTypeElement#>> <#=code.Escape(edmFunction)#>(<#=paramList#>)
|
||||
{
|
||||
<#
|
||||
foreach (var parameter in parameters)
|
||||
{
|
||||
if (!parameter.NeedsLocalVariable)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
#>
|
||||
|
||||
ObjectParameter <#=parameter.LocalVariableName#>;
|
||||
|
||||
if (<#=parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null"#>)
|
||||
{
|
||||
<#=parameter.LocalVariableName#> = new ObjectParameter("<#=parameter.EsqlParameterName#>", <#=parameter.FunctionParameterName#>);
|
||||
}
|
||||
else
|
||||
{
|
||||
<#=parameter.LocalVariableName#> = new ObjectParameter("<#=parameter.EsqlParameterName#>", typeof(<#=parameter.RawClrTypeName#>));
|
||||
}
|
||||
<#
|
||||
}
|
||||
#>
|
||||
return base.ExecuteFunction<<#=returnTypeElement#>>("<#=edmFunction.Name#>"<#=code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()))#>);
|
||||
}
|
||||
<#
|
||||
}
|
||||
|
||||
region.End();
|
||||
|
||||
#>
|
||||
}
|
||||
<#
|
||||
if (!String.IsNullOrEmpty(namespaceName))
|
||||
{
|
||||
PopIndent();
|
||||
#>
|
||||
}
|
||||
<#
|
||||
}
|
||||
#>
|
||||
<#+
|
||||
|
||||
private void WriteLazyLoadingEnabled(EntityContainer container)
|
||||
{
|
||||
string lazyLoadingAttributeValue = null;
|
||||
string lazyLoadingAttributeName = MetadataConstants.EDM_ANNOTATION_09_02 + ":LazyLoadingEnabled";
|
||||
if(MetadataTools.TryGetStringMetadataPropertySetting(container, lazyLoadingAttributeName, out lazyLoadingAttributeValue))
|
||||
{
|
||||
bool isLazyLoading = false;
|
||||
if(bool.TryParse(lazyLoadingAttributeValue, out isLazyLoading))
|
||||
{
|
||||
#>
|
||||
this.ContextOptions.LazyLoadingEnabled = <#=isLazyLoading.ToString().ToLowerInvariant()#>;
|
||||
<#+
|
||||
}
|
||||
}
|
||||
}
|
||||
#>
|
||||
Reference in New Issue
Block a user