我正在使用SMO来执行批处理SQL脚本.在Management Studio中,脚本在大约2秒内执行.使用以下代码,大约需要15秒.
var connectionString = GetConnectionString();
// need to use master because the DB in the connection string no longer exists
// because we dropped it already
var builder = new SqlConnectionStringBuilder(connectionString)
{
InitialCatalog = "master"
};
using (var sqlConnection = new SqlConnection(builder.ToString()))
{
var serverConnection = new ServerConnection(sqlConnection);
var server = new Server(serverConnection);
// hangs here for about 12 -15 seconds
server.ConnectionContext.ExecuteNonQuery(sql);
}
Run Code Online (Sandbox Code Playgroud)
该脚本创建一个新数据库,并在几个表中插入几千行.得到的DB大小约为5MB.
任何人都有这方面的经验或建议为什么这可能会如此缓慢地与SMO运行?
这个问题已经以50种不同的方式被问到了500个不同的时间......但是这里又一次,因为我似乎无法找到我正在寻找的答案:
我正在使用EF4和POCO代理.
答:我有一个从ObjectContext的一个实例中获取的对象图.该ObjectContext被释放.
B.我有一个从ObjectContext的另一个实例获取的对象.ObjectContext也被处理掉了.
我想在A中使用B中的实体设置一堆相关的属性....类似于
foreach(var itemFromA in collectionFromA)
{
itemFromA.RelatedProperty = itemFromB;
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我得到了例外:
System.InvalidOperationException occurred
Message=The relationship between the two objects cannot be defined because they are attached to different ObjectContext objects.
Source=System.Data.Entity
StackTrace:
at System.Data.Objects.DataClasses.RelatedEnd.Add(IEntityWrapper wrappedTarget, Boolean applyConstraints, Boolean addRelationshipAsUnchanged, Boolean relationshipAlreadyExists, Boolean allowModifyingOtherEndOfRelationship, Boolean forceForeignKeyChanges)
at System.Data.Objects.DataClasses.RelatedEnd.Add(IEntityWrapper wrappedEntity, Boolean applyConstraints)
at System.Data.Objects.DataClasses.EntityReference`1.set_ReferenceValue(IEntityWrapper value)
at System.Data.Objects.DataClasses.EntityReference`1.set_Value(TEntity value)
at
Run Code Online (Sandbox Code Playgroud)
我想我需要将这些实体从ObjectContexts中分离出来,以便上面的代码可以工作......问题是,当它处理时从我的ObjectContext中分离所有实体似乎会破坏图形.如果我这样做:
objectContext.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Deleted | EntityState.Modified | EntityState.Unchanged)
.Select(i => i.Entity).OfType<IEntityWithChangeTracker>().ToList()
.ForEach(i => objectContext.Detach(i));
Run Code Online (Sandbox Code Playgroud)
图中的所有关系似乎都未被设置.
我怎样才能解决这个问题?
我把我的edmx Metadata Artifact Processing设置为Copy to Output Directory.使用模型将csdl/msl/ssdl复制到项目的bin目录中,但是引用此项目的其他项目都没有将工件复制到bin目录中.
我有几个需要这些文件的end exes/services/etc,我不想为所有这些文件添加post build任务.有什么方法可以正确部署这些资源吗?或者我可以以某种方式使用原始edmx文件(而不是csdl/msl/ssdl)?
谢谢.
我正在创建一些用于存储日志条目的数据库表.在正常情况下,我总是会规范化并且永远不会把价值放在一起,但我并不是100%确信这是一个好主意.
我可以正常化并拥有:
LogEntry与LogCategory具有多对多关系,LogEntry与LogEntryProperty(名称/值对)具有1对多的关系.
Alternative是一个非规范化版本,它只有LogEntry,类别存储为逗号分隔的字符串类别列表,属性存储为Name:Value格式化属性的逗号限制列表.听起来很丑陋,从报告,性能和可搜索性的角度来看,我不确定这是不是更好.
哪个更好?
谢谢.
我正在尝试解决一些启动时间问题.在做了一些分析之后,我发现主要的罪魁祸首是ClassProxyGenerator.GenerateCode.这种类型第一次需要400-600ms.因此,如果应用程序的入口点有8个需要代理生成的依赖项(在链中),则应用程序的启动时间会增加4.8秒.这可能看起来不是很多,但对于用户来说,它似乎很年轻.
有什么改进的建议吗?
更新:
我可以使用以下控制台应用程序重现时间:
var container = new WindsorContainer();
container.Register(Component.For<Interceptor>()); // dummy IInterceptor...does nothing
container.Register(Component.For<IMyRepository, MyAbstractRepository>().Interceptors<Interceptor>());
var t = DateTime.Now;
var instance = container.Resolve<IMyRepository>();
Debug.WriteLine("Resolved in " + (DateTime.Now - t).TotalMilliseconds);
Run Code Online (Sandbox Code Playgroud)
输出介于550ms和750ms之间.
IMyRepository是30个实体类型的存储库接口(由T4模板生成).它有31个IQueryables,31个Save超载和31个Delete重载.MyAbstractRepository是一个部分抽象类.它声明了相同的3 x 31方法.
如果我删除所有保存和删除方法,只留下31个IQueryables并且不注册抽象存储库
container.Register(Component.For<IMyRepository>().Interceptors<Interceptor>());
Run Code Online (Sandbox Code Playgroud)
我仍然在第一代运行大约250毫秒.
这是一台非常(非常非常)快速的机器......所以现实世界中的任何东西都可能比上面列出的数字慢.
.net dependency-injection castle-windsor castle-dynamicproxy
我正在尝试编写一个Wix安装程序来执行一些TypeLib注册.
我已经将FileVersion从其他地方的注册文件中删除了
!(bind.FileVersion.#InteropDll)
Run Code Online (Sandbox Code Playgroud)
但我想为TypeLib做同样的事情,它只有单独的MajorVersion和MinorVersion属性.理想情况下,我想做
<TypeLib ...
MajorVersion="!(bind.FileVersion.InteropDll).Split('.')[0]"
MinorVersion="!(bind.FileVersion.InteropDll).Split('.')[1]">
Run Code Online (Sandbox Code Playgroud)
我怎样才能完成这个(或类似的)?...或者我应该不打扰所有这些并在安装时调用dll文件上的regasm?
谢谢.
我正在使用RavenDB版本2.0.3.0.附加调试器后,涉及RavenDB的所有操作都会非常慢.每个查询都需要几秒钟才能完成.
如果我在调试器刚坐在那里时按下暂停,我总是看到它挂起了以下调用跟踪:
Lucene.Net.dll!Lucene.Net.QueryParsers.FastCharStream.Refill()第91行C#Lucene.Net.dll!Lucene.Net.QueryParsers.FastCharStream.ReadChar()第53行C#Lucene.Net.dll!Lucene.Net. QueryParsers.QueryParserTokenManager.JjMoveNfa_3(INT将startState,INT CURPOS)线604 + 0x1b字节C#Lucene.Net.dll!Lucene.Net.QueryParsers.QueryParserTokenManager.JjMoveStringLiteralDfa0_3()线94 + 0xd中字节C#Lucene.Net.dll!Lucene.Net .QueryParsers.QueryParserTokenManager.GetNextToken()线1379 + 0x9字节C#Lucene.Net.dll!Lucene.Net.QueryParsers.QueryParser.Jj_ntk()行1929年+ 0x1d字节C#Lucene.Net.dll!Lucene.Net.QueryParsers.QueryParser .Clause(字符串字段)行1373 + 0x1d字节C#Lucene.Net.dll!Lucene.Net.QueryParsers.QueryParser.Query(字符串字段)行1301 + 0xc字节C#Lucene.Net.dll!Lucene.Net.QueryParsers.QueryParser.TopLevelQuery(字符串字段)行1287 + 0xc字节C#Lucene.Net.dll!Lucene.Net.QueryParsers.QueryParser.Parse(字符串查询)行223 + 0xf字节C#Raven.Database.dll!Raven. Database.Indexing.QueryBuilder.BuildQuery(查询字符串,Raven.Abstractions.Data.IndexQuery indexQuery,Raven.Database.Indexing.RavenPerFieldAnalyzerWrapper分析仪)线56 + 0xe字节C#Raven.Database.dll!Raven.Database.Indexing.Index.IndexQueryOperation .GetLuceneQuery(查询字符串,Raven.Abstractions.Data.IndexQuery indexQuery)线1120 + 0x1d字节C#Raven.Database.dll!Raven.Database.Indexing.Index.IndexQueryOperation.GetLuceneQuery()线1081个+ 0×28字节C#Raven.Database. dll!Raven.Database.Indexing.Index.IndexQueryOperation.Query()803行+ 0x26字节C#[外部代码] Raven.Database.DLL!Raven.Database.DocumentDatabase.Query.AnonymousMethod__8e(Raven.Database.Storage.IStorageActionsAccessor行动)线1220个+ 0x145字节C#Raven.Database.dll!Raven.Database.DocumentDatabase.Query(字符串索引,Raven.Abstractions.Data. IndexQuery查询)线1237 C#Raven.Database.dll!Raven.Database.Queries.DynamicQueryRunner.ExecuteActualQuery(Raven.Abstractions.Data.IndexQuery查询,Raven.Database.Data.DynamicQueryMapping地图,System.Tuple touchTemporaryIndexResult,串realQuery)82号线+ 0x32b bytes C#Raven.Database.dll!Raven.Database.Queries.DynamicQueryRunner.ExecuteDynamicQuery(string entityName,Raven.Abstractions.Data.IndexQuery query)第49行+ 0x15字节C#Raven.Database.dll!Raven.Database.Queries. DynamicQueryExtensions.ExecuteDynamicQuery(Raven.Database.DocumentDatabase self,string entityName,Raven.Abstractions.Data.IndexQuery indexQuery)第19行+ 0x11字节C#Raven.Client.Embedded.dll!Raven.Client.Embedded.EmbeddedDatabaseCommands.Query(字符串索引,Raven.Abstractions.Data.IndexQuery查询,字符串[]包括, bool metadataOnly,bool indexEntriesOnly)第389行+ 0x47字节C#Raven.Client.Lightweight.dll!Raven.Client.Document.AbstractDocumentQuery> .ExecuteActualQuery()第535行+ 0x50字节C#Raven.Client.Lightweight.dll!Raven.Client. Document.AbstractDocumentQuery> .InitSync()第518行C#Raven.Client.Lightweight.dll!Raven.Client.Document.AbstractDocumentQuery> .QueryResult.get()第505行C#Raven.Client.Lightweight.dll!Raven.Client.Linq. RavenQueryProviderProcessor.ExecuteQuery()第1425行+ 0x1b字节C#Raven.Client.Lightweight.dll!Raven.Client.Linq.RavenQueryProviderProcessor.执行(System.Linq.Expressions.Expression表达式)行1398 + 0x3d字节C#
如果我在没有连接调试器的情况下运行,一切都表现得很好而且速度很快......我在昨天之前从未遇到过这个问题.
我正在使用带有DataDir =〜\ App_Data\RavenDB的EmbeddableDocumentStore.
我尝试删除RavenDB目录,但即使使用完全新鲜的数据库,Raven仍然一样慢.
知道什么是错的或我如何排除故障?
我似乎无法让wix cabinet缓存工作.
我有
<PropertyGroup>
<CabinetCreationThreadCount>3</CabinetCreationThreadCount>
<CabinetCachePath>cabs</CabinetCachePath>
<ReuseCabinetCache>True</ReuseCabinetCache>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
在wixproj.
<Media Id="1" Cabinet="contents.cab" EmbedCab="yes" CompressionLevel="mszip"/>
<Media Id="2" Cabinet="static.cab" EmbedCab="yes" CompressionLevel="mszip"/>
Run Code Online (Sandbox Code Playgroud)
在wxs中
和我所知道的100%永远不会改变标记的组件
<Component DiskId="2" ...
Run Code Online (Sandbox Code Playgroud)
我看到cabs目录中生成的cab文件,但每次构建时,我都会看到cab文件更改的修改时间,这表明它重新生成了cabinet,而不是重用缓存中的那个.
使用Wix 3.6
我怎样才能使这个工作或进一步调试问题?
我有一个非常奇怪的问题,发生在Ripple Emulator中,文本框不会聚焦...或者至少它似乎没有聚焦(一旦我点击它就没有光标闪烁).但是,如果我开始输入,然后单击文本框,文本框的内容会突然更新以反映我输入的内容.
这似乎与css,AngularJS和Ionic Framework相结合.
我有以下HTML(这在plunkr中不可重现)
<ion-view>
<ion-nav-buttons side="left">
<button menu-toggle="left" class="button button-icon icon ion-navicon"></button>
</ion-nav-buttons>
<ion-content class="has-header">
<div style="margin-top: 20px;">
<label class="item item-input">
<span class="input-label">Date</span>
<input type="date" ng-change="search()" ng-model="filter.date">
</label>
<label class="item item-input">
<span class="input-label">Only Unscheduled</span>
<ion-checkbox ng-change="search()" style="border: none"
ng-model="filter.onlyUnscheduled"></ion-checkbox>
</label>
<label class="item item-input">
<button class="button button-positive" ng-click="clearMatches()">Clear Matches</button>
</label>
<label class="item item-input">
<button class="button button-positive" ng-click="makeTestUsersPlay()">Make Test Users Play</button>
</label>
<label class="item item-input">
<button class="button button-positive" ng-click="makeTestDate()">Make Test Date</button>
</label>
</div>
<ion-list>
<ion-item ng-repeat="item in dates track by …Run Code Online (Sandbox Code Playgroud) 通过Azure Key Vault上的组访问策略似乎不起作用.
如果我创建一个新的密钥库
New-AzureRmKeyVault -VaultName $vaultName
Run Code Online (Sandbox Code Playgroud)
并检查键(当前没有任何键)
Get-AzureKeyVaultKey -VaultName $vaultName
Run Code Online (Sandbox Code Playgroud)
这样可行.
如果我添加对当前用户所属的组的访问权限
$group = (Get-AzureRmADGroup -SearchString 'All Developers')[0].Id
Set-AzureRmKeyVaultAccessPolicy -VaultName $vaultName -ResourceGroupName $resourceGroupName -ObjectId $group -PermissionsToKeys all -PermissionsToSecrets all
Run Code Online (Sandbox Code Playgroud)
并删除直接访问
Remove-AzureRmKeyVaultAccessPolicy -VaultName $vaultName -ResourceGroupName $resourceGroupName -UserPrincipalName $upn
Run Code Online (Sandbox Code Playgroud)
列表操作现在失败
Get-AzureRmKeyVault -VaultName $vaultName -ResourceGroupName $resourceGroupName
Get-AzureKeyVaultKey : Operation "list" is not allowed
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得团体许可?
.net ×4
c# ×2
wix ×2
angularjs ×1
architecture ×1
azure ×1
javascript ×1
logging ×1
ravendb ×1
ripple ×1
smo ×1
sql-server ×1
wix3.5 ×1