google-code-export / dataobjectsdotnet

Automatically exported from code.google.com/p/dataobjectsdotnet
0 stars 0 forks source link

Investigate wrong FK creation tests #854

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
> Комментарий по поводу тестов: там 
неправильно создаются FK
> по дефолту делаются лишние, а при Hierarchy 
режиме - не создаются нужные.

The tests are sent to us by e-mail.

Original issue reported on code.google.com by alex.yakunin on 25 Nov 2010 at 11:34

GoogleCodeExporter commented 9 years ago
> там еще беда с тем,ч то onremoveaction не 
наследуется

Original comment by alex.yakunin on 25 Nov 2010 at 11:44

GoogleCodeExporter commented 9 years ago
Дополнение по тестам:

1) Не наследуются OnRemoveAction от базового класса

2) Там неправильно создаются FK
по дефолту делаются лишние
а в при Hierarchy режиме - не создаются нужные

Original comment by v.tambov...@gmail.com on 25 Nov 2010 at 11:44

Attachments:

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Также, если сделать { UpgradeMode = DomainUpgradeMode.Perform 
}; то домен вообще не заводится!

Original comment by v.tambov...@gmail.com on 25 Nov 2010 at 3:07

GoogleCodeExporter commented 9 years ago
[KeyNotFoundException: The given key was not present in the dictionary.]
   Xtensive.Storage.Model.Stored.ReferenceUpdater.UpdateAssociationReversed(StoredAssociationInfo association) +143
   Xtensive.Storage.Model.Stored.ReferenceUpdater.UpdateReferences(StoredDomainModel model) +1382
   Xtensive.Storage.Upgrade.HintGenerator..ctor(StoredDomainModel storedModel, DomainModel currentModel, StorageInfo extractedModel) +303
   Xtensive.Storage.Upgrade.UpgradingDomainBuilder.BuildSchemaHints(StorageInfo extractedSchema, StorageInfo targetSchema) +213
   Xtensive.Storage.Upgrade.<>c__DisplayClass7.<CreateBuilderConfiguration>b__3(StorageInfo extractedSchema, StorageInfo targetSchema) +95
   Xtensive.Storage.Building.Builders.DomainBuilder.SynchronizeSchema(SchemaUpgradeMode schemaUpgradeMode) +313
   Xtensive.Storage.Building.Builders.DomainBuilder.BuildDomain(DomainConfiguration configuration, DomainBuilderConfiguration builderConfiguration) +504
   Xtensive.Storage.Upgrade.UpgradingDomainBuilder.BuildStageDomain(UpgradeStage stage) +339
   Xtensive.Storage.Upgrade.UpgradingDomainBuilder.Build(DomainConfiguration configuration) +206
   Werp.Utils.DomainBuilder.Build() in D:\Home\Docs\Visual Studio 2010\Projects\Platform\Werp.Utils\DomainBuilder.cs:65
   Xtensive.Storage.Web.SessionManager.EnsureDomainIsBuilt() +112
   Xtensive.Storage.Web.SessionManager.ProvideSession() +61
   Xtensive.Storage.Web.SessionManager.EnsureSessionIsProvided() +148
   Xtensive.Storage.Web.SessionManager.get_Session() +16
   Xtensive.Storage.Session.get_Current() +98
   Werp.Controller.Services.WerpSessionProvider.GetItemExclusive(HttpContext context, String id, Boolean& locked, TimeSpan& lockAge, Object& lockId, SessionStateActions& actions) in D:\Home\Docs\Visual Studio 2010\Projects\Platform\Werp.Controller.Services\WerpSessionProvider.cs:75
   System.Web.SessionState.SessionStateModule.GetSessionStateItem() +178
   System.Web.SessionState.SessionStateModule.BeginAcquireState(Object source, EventArgs e, AsyncCallback cb, Object extraData) +1076
   System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +115
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +371

Original comment by v.tambov...@gmail.com on 25 Nov 2010 at 3:08

GoogleCodeExporter commented 9 years ago
Проверил на ревизии 6857 (a1bce42639a3) 

at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at 
Xtensive.Storage.Model.Stored.ReferenceUpdater.UpdateAssociationReversed(StoredA
ssociationInfo association) in 
d:\Home\DataObjects.Net\Xtensive.Storage\Xtensive.Storage.Model\Stored\Internals
\ReferenceUpdater.cs: line 198
at 
Xtensive.Storage.Model.Stored.ReferenceUpdater.UpdateReferences(StoredDomainMode
l model) in 
d:\Home\DataObjects.Net\Xtensive.Storage\Xtensive.Storage.Model\Stored\Internals
\ReferenceUpdater.cs: line 83
at Xtensive.Storage.Model.Stored.StoredDomainModel.UpdateReferences() in 
d:\Home\DataObjects.Net\Xtensive.Storage\Xtensive.Storage.Model\Stored\StoredDom
ainModel.cs: line 40
at Xtensive.Storage.Upgrade.HintGenerator..ctor(StoredDomainModel storedModel, 
DomainModel currentModel, StorageInfo extractedModel) in 
d:\Home\DataObjects.Net\Xtensive.Storage\Xtensive.Storage\Upgrade\Internals\Hint
Generator.cs: line 1149
at Xtensive.Storage.Upgrade.UpgradingDomainBuilder.BuildSchemaHints(StorageInfo 
extractedSchema, StorageInfo targetSchema) in 
d:\Home\DataObjects.Net\Xtensive.Storage\Xtensive.Storage\Upgrade\UpgradingDomai
nBuilder.cs: line 137
at 
Xtensive.Storage.Upgrade.UpgradingDomainBuilder.<>c__DisplayClass7.<CreateBuilde
rConfiguration>b__3(StorageInfo extractedSchema, StorageInfo targetSchema) in 
d:\Home\DataObjects.Net\Xtensive.Storage\Xtensive.Storage\Upgrade\UpgradingDomai
nBuilder.cs: line 106
at 
Xtensive.Storage.Building.Builders.DomainBuilder.SynchronizeSchema(SchemaUpgrade
Mode schemaUpgradeMode) in 
d:\Home\DataObjects.Net\Xtensive.Storage\Xtensive.Storage\Building\Builders\Doma
inBuilder.cs: line 302
at 
Xtensive.Storage.Building.Builders.DomainBuilder.BuildDomain(DomainConfiguration
 configuration, DomainBuilderConfiguration builderConfiguration) in 
d:\Home\DataObjects.Net\Xtensive.Storage\Xtensive.Storage\Building\Builders\Doma
inBuilder.cs: line 70
at 
Xtensive.Storage.Upgrade.UpgradingDomainBuilder.BuildStageDomain(UpgradeStage 
stage) in 
d:\Home\DataObjects.Net\Xtensive.Storage\Xtensive.Storage\Upgrade\UpgradingDomai
nBuilder.cs: line 82
at Xtensive.Storage.Upgrade.UpgradingDomainBuilder.Build(DomainConfiguration 
configuration) in 
d:\Home\DataObjects.Net\Xtensive.Storage\Xtensive.Storage\Upgrade\UpgradingDomai
nBuilder.cs: line 59
at Xtensive.Storage.Domain.Build(DomainConfiguration configuration) in 
d:\Home\DataObjects.Net\Xtensive.Storage\Xtensive.Storage\Domain.cs: line 225
at DoTests.Test.Test2() in Test.cs: line 21 

Original comment by v.tambov...@gmail.com on 25 Nov 2010 at 3:20

GoogleCodeExporter commented 9 years ago

Original comment by alexis.k...@gmail.com on 30 Nov 2010 at 6:46

GoogleCodeExporter commented 9 years ago
Completely done, or something isn't done yet? AFAIK, this issue actually 
describes a set of bugs.

Original comment by alex.yakunin on 30 Nov 2010 at 10:21

GoogleCodeExporter commented 9 years ago
Looks like all the bugs are fixed. I've just pulled latest 'stable' and my test 
are all running OK

Original comment by v.tambov...@gmail.com on 30 Nov 2010 at 10:25

GoogleCodeExporter commented 9 years ago
Ups, looks like I'm wrong. There are no FK's in the base class 
ImportTemplateBase.MlKeyField and ImportTemplateBase.TpFieldMatch

Original comment by v.tambov...@gmail.com on 13 Dec 2010 at 4:19

Attachments:

GoogleCodeExporter commented 9 years ago
Btw, that's not "Done"

Original comment by v.tambov...@gmail.com on 15 Dec 2010 at 9:48

GoogleCodeExporter commented 9 years ago
We'll investigate the issue shorty

Original comment by Dmitri.Maximov on 15 Dec 2010 at 10:24

GoogleCodeExporter commented 9 years ago
Ouch. Sorry, there was one more foreignKeymode=Hierarchy in our code, sorry
BTW what does it mean?

Original comment by v.tambov...@gmail.com on 16 Dec 2010 at 2:34

GoogleCodeExporter commented 9 years ago
foreignKeyMode=Hierarchy makes sense for HierarchyScheme==ClassTable only.
It means that FKs will be created between key columns of descendants and 
ancestors, for example, between Dog.ID and Animal.ID columns.
This will provide additional validation for referential integrity within 
hierarchy and simplify removing of entities which data is shared between tables 
of their hierarchy.
For example, in order to remove a 'Dog' instance we need to remove only a 
corresponding record in 'Animal' table; records from other tables will be 
deleted by SQL server according to referential integrity rules (ON REMOVE 
CASCADE).

BTW, does your comment mean that the issue is actually closed and there is no 
any necessity in its investigation?

Original comment by Dmitri.Maximov on 17 Dec 2010 at 8:11

GoogleCodeExporter commented 9 years ago
Yes, the issue is closed.

Original comment by v.tambov...@gmail.com on 17 Dec 2010 at 8:20

GoogleCodeExporter commented 9 years ago

Original comment by Dmitri.Maximov on 17 Dec 2010 at 8:47