Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntity / System / Data / Map / ViewGeneration / Structures / WithStatement.cs / 1 / WithStatement.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System.Data.Common.Utils;
using System.Text;
using System.Collections.Generic;
using System.Data.Mapping.ViewGeneration.CqlGeneration;
using System.Data.Metadata.Edm;
using System.Diagnostics;
namespace System.Data.Mapping.ViewGeneration.Structures
{
// effects: A class to denote a With statement
internal class WithStatement : InternalBase
{
#region Constructors
///
/// effects: Creates a case statement for the field "memberPath"
/// with no clauses
///
internal WithStatement(EntitySet entitySetForToEnd, EntityType entityTypeForToEnd,
EntityType entityTypeForFromEnd, AssociationSet associationSet,
string fromRoleName, string toRoleName,
IEnumerable memberPathsForEndMembers)
{
m_entitySetForToEnd = entitySetForToEnd;
m_entityTypeForToEnd = entityTypeForToEnd;
m_entityTypeForFromEnd = entityTypeForFromEnd;
m_memberPathsForEndMembers = memberPathsForEndMembers;
m_associationSet = associationSet;
m_fromRoleName = fromRoleName;
m_toRoleName = toRoleName;
}
#endregion
#region Fields
private EntitySet m_entitySetForToEnd;
private EntityType m_entityTypeForToEnd;
private EntityType m_entityTypeForFromEnd;
private AssociationSet m_associationSet;
private string m_fromRoleName;
private string m_toRoleName;
private IEnumerable m_memberPathsForEndMembers;
#endregion
#region Properties
internal EntityType EntityTypeForFromEnd
{
get { return m_entityTypeForFromEnd; }
}
#endregion
#region Methods
// effects: For the given With Statement, generates the CQL for
// it.
internal StringBuilder AsCql(StringBuilder builder, string blockAlias, int indentLevel)
{
StringUtil.IndentNewLine(builder, indentLevel + 1);
builder.Append("RELATIONSHIP(");
List fields = new List();
// If the variable is a relation end, we will gets it scope Extent, e.g., CPerson1 for an
// the CPerson end of CPersonAddress1
builder.Append("CREATEREF(");
CqlWriter.AppendEscapedQualifiedName(builder, m_entitySetForToEnd.EntityContainer.Name, m_entitySetForToEnd.Name);
builder.Append(", ROW(");
foreach (MemberPath memberPath in m_memberPathsForEndMembers)
{
string fullFieldAlias = CqlWriter.GetQualifiedName(blockAlias, memberPath.CqlFieldAlias);
fields.Add(fullFieldAlias);
}
StringUtil.ToSeparatedString(builder, fields, ", ", null);
builder.Append(')');
builder.Append(",");
CqlWriter.AppendEscapedTypeName(builder, m_entityTypeForToEnd);
builder.Append(')');
builder.Append(',');
CqlWriter.AppendEscapedTypeName(builder, m_associationSet.ElementType);
builder.Append(',');
CqlWriter.AppendEscapedName(builder, m_fromRoleName);
builder.Append(',');
CqlWriter.AppendEscapedName(builder, m_toRoleName);
builder.Append(')');
builder.Append(' ');
return builder;
}
// Repeat of AsCql but don't have all the info
internal override void ToCompactString(StringBuilder builder)
{
throw new NotImplementedException();
}
#endregion
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System.Data.Common.Utils;
using System.Text;
using System.Collections.Generic;
using System.Data.Mapping.ViewGeneration.CqlGeneration;
using System.Data.Metadata.Edm;
using System.Diagnostics;
namespace System.Data.Mapping.ViewGeneration.Structures
{
// effects: A class to denote a With statement
internal class WithStatement : InternalBase
{
#region Constructors
///
/// effects: Creates a case statement for the field "memberPath"
/// with no clauses
///
internal WithStatement(EntitySet entitySetForToEnd, EntityType entityTypeForToEnd,
EntityType entityTypeForFromEnd, AssociationSet associationSet,
string fromRoleName, string toRoleName,
IEnumerable memberPathsForEndMembers)
{
m_entitySetForToEnd = entitySetForToEnd;
m_entityTypeForToEnd = entityTypeForToEnd;
m_entityTypeForFromEnd = entityTypeForFromEnd;
m_memberPathsForEndMembers = memberPathsForEndMembers;
m_associationSet = associationSet;
m_fromRoleName = fromRoleName;
m_toRoleName = toRoleName;
}
#endregion
#region Fields
private EntitySet m_entitySetForToEnd;
private EntityType m_entityTypeForToEnd;
private EntityType m_entityTypeForFromEnd;
private AssociationSet m_associationSet;
private string m_fromRoleName;
private string m_toRoleName;
private IEnumerable m_memberPathsForEndMembers;
#endregion
#region Properties
internal EntityType EntityTypeForFromEnd
{
get { return m_entityTypeForFromEnd; }
}
#endregion
#region Methods
// effects: For the given With Statement, generates the CQL for
// it.
internal StringBuilder AsCql(StringBuilder builder, string blockAlias, int indentLevel)
{
StringUtil.IndentNewLine(builder, indentLevel + 1);
builder.Append("RELATIONSHIP(");
List fields = new List();
// If the variable is a relation end, we will gets it scope Extent, e.g., CPerson1 for an
// the CPerson end of CPersonAddress1
builder.Append("CREATEREF(");
CqlWriter.AppendEscapedQualifiedName(builder, m_entitySetForToEnd.EntityContainer.Name, m_entitySetForToEnd.Name);
builder.Append(", ROW(");
foreach (MemberPath memberPath in m_memberPathsForEndMembers)
{
string fullFieldAlias = CqlWriter.GetQualifiedName(blockAlias, memberPath.CqlFieldAlias);
fields.Add(fullFieldAlias);
}
StringUtil.ToSeparatedString(builder, fields, ", ", null);
builder.Append(')');
builder.Append(",");
CqlWriter.AppendEscapedTypeName(builder, m_entityTypeForToEnd);
builder.Append(')');
builder.Append(',');
CqlWriter.AppendEscapedTypeName(builder, m_associationSet.ElementType);
builder.Append(',');
CqlWriter.AppendEscapedName(builder, m_fromRoleName);
builder.Append(',');
CqlWriter.AppendEscapedName(builder, m_toRoleName);
builder.Append(')');
builder.Append(' ');
return builder;
}
// Repeat of AsCql but don't have all the info
internal override void ToCompactString(StringBuilder builder)
{
throw new NotImplementedException();
}
#endregion
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- X509Utils.cs
- DataSourceXmlTextReader.cs
- DataGridViewLinkCell.cs
- Wizard.cs
- FixedPosition.cs
- List.cs
- AttributeUsageAttribute.cs
- WinFormsSecurity.cs
- SequentialOutput.cs
- HtmlWindow.cs
- BulletedListEventArgs.cs
- NonBatchDirectoryCompiler.cs
- DispatchWrapper.cs
- ClockController.cs
- __Error.cs
- FrugalMap.cs
- ItemsControl.cs
- XslTransform.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- keycontainerpermission.cs
- TextServicesPropertyRanges.cs
- ExpandCollapsePattern.cs
- DataGridViewComboBoxColumn.cs
- EntityConnectionStringBuilder.cs
- UnmanagedMemoryStreamWrapper.cs
- XmlMapping.cs
- XmlSignificantWhitespace.cs
- TextServicesManager.cs
- StreamSecurityUpgradeAcceptor.cs
- ValueUtilsSmi.cs
- SHA256Cng.cs
- SqlFacetAttribute.cs
- WindowShowOrOpenTracker.cs
- SizeAnimationBase.cs
- DeviceOverridableAttribute.cs
- Accessible.cs
- PartialArray.cs
- EditorPartCollection.cs
- XmlSortKey.cs
- MethodAccessException.cs
- HtmlDocument.cs
- TraceXPathNavigator.cs
- Decoder.cs
- XPathNodePointer.cs
- SrgsElementFactoryCompiler.cs
- Rethrow.cs
- TranslateTransform3D.cs
- ReadOnlyDictionary.cs
- AuthenticationModuleElement.cs
- DataRowView.cs
- ServiceBehaviorElementCollection.cs
- XmlAttributeCache.cs
- NativeMethods.cs
- XmlUtilWriter.cs
- BooleanKeyFrameCollection.cs
- DataBoundLiteralControl.cs
- StateWorkerRequest.cs
- ReaderContextStackData.cs
- WindowsAuthenticationModule.cs
- PageStatePersister.cs
- SqlRecordBuffer.cs
- ContainsRowNumberChecker.cs
- RegexCapture.cs
- printdlgexmarshaler.cs
- RegexFCD.cs
- PropertyInfoSet.cs
- VSWCFServiceContractGenerator.cs
- GridViewRow.cs
- ListMarkerLine.cs
- RuleSetCollection.cs
- CLRBindingWorker.cs
- XsltSettings.cs
- DataRowChangeEvent.cs
- DocumentXmlWriter.cs
- AssemblyAttributesGoHere.cs
- BufferedGraphics.cs
- ToolStripScrollButton.cs
- LineMetrics.cs
- MetaDataInfo.cs
- Transform3D.cs
- PropertyPath.cs
- RepeatBehavior.cs
- CustomTrackingQuery.cs
- XmlQueryOutput.cs
- PersianCalendar.cs
- sitestring.cs
- DataGridItemAttachedStorage.cs
- SystemMulticastIPAddressInformation.cs
- SudsWriter.cs
- ItemCollection.cs
- dataSvcMapFileLoader.cs
- PrintControllerWithStatusDialog.cs
- ControlBindingsCollection.cs
- AuthenticationManager.cs
- HtmlWindow.cs
- Processor.cs
- DockPattern.cs
- XmlBufferedByteStreamReader.cs
- RegistrySecurity.cs
- FlowDocumentPage.cs