Imported Upstream version 4.0.0~alpha1

Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
This commit is contained in:
Jo Shields
2015-04-07 09:35:12 +01:00
parent 283343f570
commit 3c1f479b9d
22469 changed files with 2931443 additions and 869343 deletions

View File

@ -0,0 +1,44 @@
using System.Data.Linq;
using System.Data.Objects;
using System.Globalization;
using System.Web.Resources;
namespace System.Web.DynamicData.ModelProviders {
internal class SchemaCreator {
private static SchemaCreator s_instance = new SchemaCreator();
public static SchemaCreator Instance {
get {
return s_instance;
}
}
public virtual DataModelProvider CreateDataModel(object contextInstance, Func<object> contextFactory) {
if (IsDataContext(contextInstance.GetType())) {
return new DLinqDataModelProvider(contextInstance, contextFactory);
}
if (IsObjectContext(contextInstance.GetType())) {
return new EFDataModelProvider(contextInstance, contextFactory);
}
throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, DynamicDataResources.SchemaCreator_UnknownModel, contextInstance.GetType().FullName));
}
public virtual bool ValidDataContextType(Type contextType) {
//
return IsDataContext(contextType) || IsObjectContext(contextType);
}
internal static bool IsDataContext(Type contextType) {
return IsValidType<DataContext>(contextType);
}
internal static bool IsObjectContext(Type contextType) {
return IsValidType<ObjectContext>(contextType);
}
private static bool IsValidType<T>(Type contextType) where T : class {
return contextType != null && typeof(T).IsAssignableFrom(contextType);
}
}
}