我正在使用Azure数据库做一些数据库管理员,我需要执行查询,例如删除数据库中的所有约束.
使用Azure数据库时,sp_MSForEachTable不可用,因此我正在采用不同的方法来执行此操作.
我找到了一个丢弃所有表格的片段:http://edspencer.me.uk/2013/02/25/drop-all-tables-in-a-sql-server-database-azure-friendly/并尝试修改它删除我需要的所有约束并得出这个结果:
while(exists(select 1 from INFORMATION_SCHEMA.TABLES where TABLE_NAME != '__MigrationHistory'))
begin
PRINT ('Disabling' + TABLE_NAME)
declare @constraintOff nvarchar(2000)
SELECT TOP 1 @constraintOff=('ALTER TABLE ' + TABLE_SCHEMA + '.[' + TABLE_NAME + '] ' + 'NOCHECK CONSTRAINT all')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME != '__MigrationHistory'
exec (@constraintOff)
PRINT @constraintOff
end
Run Code Online (Sandbox Code Playgroud)
它反复尝试对数据库中的第一项进行操作,如果你放弃了所有内容,它将正常工作,但我需要循环遍历每个表并禁用它的约束,如sp_MSForEachTable.
有小费吗?我在这里和那里看到了一些声称可以做到这一点的东西,但它们通常是两到三页长的脚本,它们会做很多其他的事情并且会让我的大脑受到伤害.
UPDATE
仍在处理该查询,看起来这样的事情可能会更好但仍然没有骰子:
declare @constraintOff nvarchar(2000)
SELECT @constraintOff=('ALTER TABLE ' + TABLE_SCHEMA + '.[' + TABLE_NAME + '] ' + 'NOCHECK CONSTRAINT all')
FROM INFORMATION_SCHEMA.TABLES
exec …Run Code Online (Sandbox Code Playgroud) 问题是如何INotifyPropertyChanged在静态属性上实现,因为您实现的事件不是静态的,并且不能由静态属性调用.此外,您无法绑定到Silverlight中的静态属性.
我已经看到这个问题在一些论坛中出现了各种各样的解决方案,其中没有一个非常令人满意.
嗯,我想我已经找到了一个优雅的解决方案,但它很简单,我觉得我必须遗漏一些东西.
答案是,编写一个访问静态变量的非静态属性,如下所示:
private static double length;
public double Length
{
get
{
return length;
}
set
{
length = value;
NotifyPropertyChanged("Length");
}
}
Run Code Online (Sandbox Code Playgroud)
我已经测试了它,似乎工作得很好.我错过了什么吗?
我在从实体框架上下文中获取数据时遇到了一些麻烦.我正在将我的应用程序从实体框架4升级到6并且它还没有成为派对.
现在,如果我尝试查询数据库中的任何记录,我会得到一个空引用异常.
DBSet<EntityObject> test1 = context.EntityObjects;
List<EntityObject> test2 = test1.ToList();
Run Code Online (Sandbox Code Playgroud)
第一行运行没有错误.第二行抛出System.NullReferenceException,其中包含以下堆栈跟踪:
at System.Data.Entity.Core.Metadata.Edm.OSpaceTypeFactory.TypesMatchByConvention(Type type, EdmType cspaceType)
at System.Data.Entity.Core.Metadata.Edm.OSpaceTypeFactory.TryCreateStructuralType(Type type, StructuralType cspaceType, EdmType& newOSpaceType)
at System.Data.Entity.Core.Metadata.Edm.OSpaceTypeFactory.TryCreateType(Type type, EdmType cspaceType)
at System.Data.Entity.Core.Metadata.Edm.ObjectItemConventionAssemblyLoader.LoadTypesFromAssembly()
at System.Data.Entity.Core.Metadata.Edm.ObjectItemAssemblyLoader.Load()
at System.Data.Entity.Core.Metadata.Edm.AssemblyCache.LoadAssembly(Assembly assembly, Boolean loadReferencedAssemblies, ObjectItemLoadingSessionData loadingData)
at System.Data.Entity.Core.Metadata.Edm.AssemblyCache.LoadAssembly(Assembly assembly, Boolean loadReferencedAssemblies, KnownAssembliesSet knownAssemblies, EdmItemCollection edmItemCollection, Action`1 logLoadMessage, Object& loaderCookie, Dictionary`2& typesInLoading, List`1& errors)
at System.Data.Entity.Core.Metadata.Edm.ObjectItemCollection.LoadAssemblyFromCache(Assembly assembly, Boolean loadReferencedAssemblies, EdmItemCollection edmItemCollection, Action`1 logLoadMessage)
at System.Data.Entity.Core.Metadata.Edm.ObjectItemCollection.ExplicitLoadFromAssembly(Assembly assembly, EdmItemCollection edmItemCollection, Action`1 logLoadMessage)
at System.Data.Entity.Core.Metadata.Edm.MetadataWorkspace.ExplicitLoadFromAssembly(Assembly assembly, ObjectItemCollection collection, Action`1 logLoadMessage)
at …Run Code Online (Sandbox Code Playgroud)