小编Eri*_*ric的帖子

SQL删除所有约束Azure友好

我正在使用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)

sql t-sql azure azure-sql-database

9
推荐指数
1
解决办法
3087
查看次数

实现在WPF和Silverlight中的静态属性上更改了INotifyProperty

问题是如何INotifyPropertyChanged在静态属性上实现,因为您实现的事件不是静态的,并且不能由静态属性调用.此外,您无法绑定到Silverlight中的静态属性.

我已经看到这个问题在一些论坛中出现了各种各样的解决方案,其中没有一个非常令人满意.

嗯,我想我已经找到了一个优雅的解决方案,但它很简单,我觉得我必须遗漏一些东西.

答案是,编写一个访问静态变量的非静态属性,如下所示:

    private static double length;
    public double Length
    {
        get
        {
            return length;
        }
        set
        {
            length = value;
            NotifyPropertyChanged("Length");
        }
    }
Run Code Online (Sandbox Code Playgroud)

我已经测试了它,似乎工作得很好.我错过了什么吗?

.net silverlight wpf xaml inotifypropertychanged

4
推荐指数
1
解决办法
4823
查看次数

从EF4升级后,在EF6中查询数据的空引用异常

我在从实体框架上下文中获取数据时遇到了一些麻烦.我正在将我的应用程序从实体框架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)

c# entity-framework

3
推荐指数
1
解决办法
2187
查看次数