本文整理汇总了C#中EntitySet.GetEntity方法的典型用法代码示例。如果您正苦于以下问题:C# EntitySet.GetEntity方法的具体用法?C# EntitySet.GetEntity怎么用?C# EntitySet.GetEntity使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类EntitySet
的用法示例。
在下文中一共展示了EntitySet.GetEntity方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DeserialiseComponentMapping
public ComponentMapping DeserialiseComponentMapping(XmlNode mappingNode, IDatabase database, EntitySet set)
{
NodeProcessor proc = new NodeProcessor(mappingNode);
ComponentMapping mapping = new ComponentMappingImpl();
mapping.FromTable = database.GetTable(proc.GetString("FromTable"), proc.GetString("FromSchema"));
NodeProcessor specProcessor = new NodeProcessor(mappingNode.SelectSingleNode("ToComponent"));
var specification = set.GetComponentSpecification(specProcessor.Attributes.GetString("specification"));
var parentEntity = set.GetEntity(specProcessor.Attributes.GetString("parent-entity"));
string name = specProcessor.Attributes.GetString("name");
if (parentEntity == null)
throw new DeserialisationException(string.Format("Could not find the Entity named {0}", name));
if (specification == null)
throw new DeserialisationException(string.Format("Could not find the Component Specification named {0}", name));
var component = specification.ImplementedComponents.FirstOrDefault(c => ReferenceEquals(c.ParentEntity, parentEntity) && c.Name == name);
if (component == null)
throw new DeserialisationException(string.Format("Could not find the component named {0}", name));
mapping.ToComponent = component;
var columnNodes = mappingNode.SelectNodes("FromColumns/Column");
var propNodes = mappingNode.SelectNodes("ToProperties/Property");
if (columnNodes == null) throw new DeserialisationException("There were no columns in this Mapping xml");
if (propNodes == null) throw new DeserialisationException("There were no properties in this Mapping xml");
List<IColumn> columns = new List<IColumn>();
foreach (XmlNode columnNode in columnNodes)
{
columns.Add(mapping.FromTable.GetColumn(columnNode.InnerText));
}
List<ComponentPropertyMarker> properties = new List<ComponentPropertyMarker>();
foreach (XmlNode propNode in propNodes)
{
properties.Add(mapping.ToComponent.GetProperty(propNode.InnerText));
}
if (columns.Count != properties.Count) throw new DeserialisationException("Mapping contains different numbers of columns and properties");
for (int i = 0; i < columns.Count; i++)
{
mapping.AddPropertyAndColumn(properties[i], columns[i]);
}
ProcessScriptBase(mapping, mappingNode);
return mapping;
}
示例2: DeserialiseMapping
public Mapping DeserialiseMapping(XmlNode node, IDatabase database, EntitySet set)
{
NodeProcessor proc = new NodeProcessor(node);
Mapping mapping = new MappingImpl();
mapping.FromTable = database.GetTable(proc.GetString("FromTable"), proc.GetString("FromSchema"));
if (mapping.FromTable == null)
mapping.FromTable = database.GetView(proc.GetString("FromTable"), proc.GetString("FromSchema"));
mapping.ToEntity = set.GetEntity(proc.GetString("ToEntity"));
if (mapping.FromTable == null || mapping.ToEntity == null)
return null;
var columnNodes = node.SelectNodes("FromColumns/Column");
var propNodes = node.SelectNodes("ToProperties/Property");
if (columnNodes == null) throw new DeserialisationException("There were no columns in this Mapping xml");
if (propNodes == null) throw new DeserialisationException("There were no properties in this Mapping xml");
List<IColumn> columns = new List<IColumn>();
foreach (XmlNode columnNode in columnNodes)
columns.Add(mapping.FromTable.GetColumn(columnNode.InnerText));
List<Property> properties = new List<Property>();
foreach (XmlNode propNode in propNodes)
properties.Add(mapping.ToEntity.GetProperty(propNode.InnerText));
if (columns.Count != properties.Count) throw new DeserialisationException("Mapping contains different numbers of columns and properties");
for (int i = 0; i < columns.Count; i++)
{
if (properties[i] != null && columns[i] != null)
mapping.AddPropertyAndColumn(properties[i], columns[i]);
}
ProcessScriptBase(mapping, node);
return mapping;
}