Come leggere il modello di Entity Framework e convalidarlo con una determinata connessione?

0

Ho un primo modello di database di Entity Framework.

Voglio scrivere un test MSTest / nUnit per verificare che tutti i processi, le tabelle e le viste memorizzati definiti nel mio modello edmx siano ancora validi sul database.

    
posta Brian 22.01.2014 - 18:02
fonte

2 risposte

0

Ho trovato la risposta:

var list = context.MetadataWorkspace.GetItems<EdmFunction>(DataSpace.SSpace).Where(i=>i.ReturnParameter == null);

Questo ha restituito lo schema corretto e il nome della stored procedure. Allora potrei chiamare per ogni articolo nella lista:

var sqlCommands = string.Format("SELECT 'x' FROM sys.objects WHERE object_id = OBJECT_ID(N'{0}') AND type in (N'P', N'PC')", storedProcedureName);
var exists = dbContext.Database.SqlQuery<string>(sqlCommands).Any();
    
risposta data 31.01.2014 - 20:36
fonte
2

Interroga le tabelle di sistema . Ciò verificherà la presenza di tutti gli oggetti richiesti nel tuo database.

Ad esempio, la seguente query utilizza la vista del catalogo sys.objects per restituire tutti gli oggetti del database che sono stati modificati negli ultimi 10 giorni.

SELECT name AS object_name 
  ,SCHEMA_NAME(schema_id) AS schema_name
  ,type_desc
  ,create_date
  ,modify_date
FROM sys.objects
WHERE modify_date > GETDATE() - 10
ORDER BY modify_date;

Vedi anche
Interrogazione il catalogo di sistema di SQL Server
Codice ADO.NET Esempi

    
risposta data 22.01.2014 - 18:06
fonte

Leggi altre domande sui tag