Test unitario con sforzo - Aggiunta di record con identità disattivata

effort mstest objectcontext unit-testing

Domanda

Sto usando usando Effort (per EF4) per fare alcuni test unitari.

var ctx= Effort.ObjectContextFactory.CreateTransient<TheContext>(Shared.Connection);
ctx.companies.AddObject(new company() { ID = 100, name = "Agent", is_agent = true });
ctx.SaveChanges(System.Data.Objects.SaveOptions.DetectChangesBeforeSave);

La colonna ID della società è un campo identità. Dopo aver eseguito la query sopra, risulta che il valore ID è 1 anziché 100. Esiste un modo per controllare Identity_insert mentre si utilizza Effort

Risposta accettata

Questo è solo per aggiungere la soluzione su questo thread. @MrBlueSky aggiunge i collegamenti archiviati della soluzione sui commenti sopra. Ma, DbConfiguration che viene utilizzato sul collegamento, non esiste più nell'ultimo sforzo. La soluzione esiste ancora su Effort.EF6 [version="1.3.0"] . Ed è possibile utilizzare il metodo SetIdentityFields su EffortConnection.DbManager per attivare o disattivare i campi identità

if (Effort.DbConnectionFactory.CreateTransient() is EffortConnection connection)
{
    connection.Open();
    connection.DbManager.SetIdentityFields(false);
    connection.DbManager.ClearMigrationHistory();
    connection.Close();
}

Accendere

if (Effort.DbConnectionFactory.CreateTransient() is EffortConnection connection)
{
    connection.Open();
    connection.DbManager.SetIdentityFields(false);
    connection.DbManager.ClearMigrationHistory();
    connection.Close();
}



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché