internal static void Initialize(Dictionary <Type, List <string> > sets) { if (_entitySetMappingsCache.Count > 0) { return; } lock (_object) { foreach (var set in sets) { if (set.Value.Count > 1) { throw new InvalidOperationException(); } var type = set.Key; if (_entitySetMappingsCache.ContainsKey(type)) { continue; } EntityType entityType = new EntityType(type.Name, type.NestingNamespace(), null); var entitySet = new EntitySet(type.Name, "dbo", type.Name, entityType); var properties = GetProperties(type, false, new Type[] { type }).ToList(); for (var i = 0; i < properties.Count; ++i) { var propertyInfo = properties[i]; EdmProperty property = new EdmProperty(); property.PropertyInfo = propertyInfo; property.Name = propertyInfo.Name; var propertyType = propertyInfo.PropertyType; property.Nullable = propertyType.TryUnwrapNullableType(out propertyType) || !propertyType.IsValueType(); PrimitiveTypeKind primitiveTypeKind; if (EdmConstants.TryGetPrimitiveTypeKind(propertyType, out primitiveTypeKind)) { property.TypeUsage = TypeUsage.Create(EdmConstants.GetPrimitiveType(primitiveTypeKind)); } entitySet.ElementType.AddProperty(property); } var typeToLoad = type; do { typeToLoad = typeToLoad.BaseType(); }while (typeToLoad != null && typeToLoad != typeof(Object)); if (typeToLoad == null || typeToLoad == typeof(Object)) { typeToLoad = type; } _entitySetMappingsCache[type] = new EntitySetTypePair(entitySet, typeToLoad); } } }
public static ConstantPredicate Constant(object value) { Check.NotNull(value, "value"); Type type = value.GetType(); PrimitiveTypeKind primitiveTypeKind; if (!EdmConstants.TryGetPrimitiveTypeKind(type, out primitiveTypeKind)) { throw new ArgumentException("type"); } PrimitiveType primitiveType = EdmConstants.GetPrimitiveType(primitiveTypeKind); TypeUsage typeusage = TypeUsage.Create(primitiveType); return(new ConstantPredicate(typeusage, value)); }