You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user